home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / readpix.s < prev    next >
Text File  |  1999-02-04  |  107KB  |  6,070 lines

  1.  
  2. ; Storm C Compiler
  3. ; Work2:Mesa3/Mesa-3.0/src/readpix.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_read_stencil_span
  7.     XREF    _gl_read_rgba_span
  8.     XREF    _gl_map_stencil
  9.     XREF    _gl_shift_and_offset_stencil
  10.     XREF    _gl_map_ci_to_color
  11.     XREF    _gl_map_ci
  12.     XREF    _gl_shift_and_offset_ci
  13.     XREF    _gl_map_color
  14.     XREF    _gl_scale_and_bias_color
  15.     XREF    _gl_pixel_addr_in_image
  16.     XREF    _gl_components_in_format
  17.     XREF    _gl_sizeof_type
  18.     XREF    _gl_swap4
  19.     XREF    _gl_swap2
  20.     XREF    _gl_error
  21.     XREF    _gl_problem
  22.     XREF    _q_memcpy
  23.     XREF    _CC
  24.  
  25.     SECTION "_read_index_pixels:0",CODE
  26.  
  27.  
  28. ;static void read_index_pixels( GLcontext *ctx,
  29. _read_index_pixels
  30. L665    EQU    -$191C
  31.     link    a5,#L665
  32.     movem.l    d2-d7/a2/a3,-(a7)
  33.     movem.l    $14(a5),d2/d5/d7/a3
  34.     move.l    $10(a5),d4
  35.     move.l    $8(a5),a2
  36. L614
  37. ;   if (ctx->Visual->RGBAflag) 
  38.     move.l    $8F8(a2),a0
  39.     tst.b    (a0)
  40.     beq.b    L616
  41. L615
  42. ;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
  43.     move.l    #L612,-(a7)
  44.     pea    $502.w
  45.     move.l    a2,-(a7)
  46.     jsr    _gl_error
  47.     add.w    #$C,a7
  48.     movem.l    (a7)+,d2-d7/a2/a3
  49.     unlk    a5
  50.     rts
  51. L616
  52. ;   for (j=0;
  53.     moveq    #0,d3
  54.     bra    L663
  55. L617
  56. ;      (*ctx->Driver.ReadCI32Span)( ctx, width, x, y, index );
  57.     pea    -$1908(a5)
  58.     move.l    d4,-(a7)
  59.     move.l    $C(a5),-(a7)
  60.     move.l    d2,-(a7)
  61.     move.l    a2,-(a7)
  62.     move.l    $94C(a2),a0
  63.     jsr    (a0)
  64.     add.w    #$14,a7
  65. ;      if (ctx->Pixel.IndexShift!=0 || ctx->Pixel.IndexOffset!=
  66.     move.l    a2,a0
  67.     add.l    #$B168,a0
  68.     tst.l    $2E(a0)
  69.     bne.b    L619
  70. L618
  71.     move.l    a2,a0
  72.     add.l    #$B168,a0
  73.     tst.l    $32(a0)
  74.     beq.b    L620
  75. L619
  76. ;         gl_shift_and_offset_ci( ctx, width, index);
  77.     pea    -$1908(a5)
  78.     move.l    d2,-(a7)
  79.     move.l    a2,-(a7)
  80.     jsr    _gl_shift_and_offset_ci
  81.     add.w    #$C,a7
  82. L620
  83. ;      if (ctx->Pixel.MapColorFlag) 
  84.     move.l    a2,a0
  85.     add.l    #$B168,a0
  86.     tst.b    $36(a0)
  87.     beq.b    L622
  88. L621
  89. ;         gl_map_ci(ctx, width, index);
  90.     pea    -$1908(a5)
  91.     move.l    d2,-(a7)
  92.     move.l    a2,-(a7)
  93.     jsr    _gl_map_ci
  94.     add.w    #$C,a7
  95. L622
  96. ;      dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
  97.     clr.l    -(a7)
  98.     move.l    d3,-(a7)
  99.     clr.l    -(a7)
  100.     move.l    d7,-(a7)
  101.     pea    $1900.w
  102.     move.l    d5,-(a7)
  103.     move.l    d2,-(a7)
  104.     move.l    a3,-(a7)
  105.     move.l    a2,a0
  106.     add.l    #$E644,a0
  107.     pea    (a0)
  108.     jsr    _gl_pixel_addr_in_image
  109.     add.w    #$24,a7
  110.     move.l    d0,a0
  111. ;      switch (type)
  112.     move.l    d7,d0
  113.     sub.l    #$1400,d0
  114.     cmp.l    #6,d0
  115.     bhi    L661
  116.     move.l    L666(pc,d0.l*4),a1
  117.     jmp    (a1)
  118. L666
  119.     dc.l    L627
  120.     dc.l    L623
  121.     dc.l    L637
  122.     dc.l    L631
  123.     dc.l    L649
  124.     dc.l    L643
  125.     dc.l    L655
  126. ;     
  127. L623
  128. ;               GLubyte *dst = (GLubyte *) dest;
  129. ;           for (i=0;
  130.     moveq    #0,d0
  131.     bra.b    L625
  132. L624
  133. ;          *dst++ = (GLubyte) index[i];
  134.     lea    -$1908(a5),a1
  135.     move.b    3(a1,d0.l*4),d1
  136.     move.b    d1,(a0)+
  137.     addq.l    #1,d0
  138. L625
  139.     cmp.l    d2,d0
  140.     blt.b    L624
  141. L626
  142. ;        
  143.     bra    L662
  144. L627
  145. ;               GLbyte *dst = (GLbyte *) dest;
  146.     move.l    a0,a1
  147. ;           for (i=0;
  148.     moveq    #0,d0
  149.     bra.b    L629
  150. L628
  151. ;          dst[i] = (GLbyte) index[i];
  152.     lea    -$1908(a5),a0
  153.     move.b    3(a0,d0.l*4),d1
  154.     move.b    d1,0(a1,d0.l)
  155.     addq.l    #1,d0
  156. L629
  157.     cmp.l    d2,d0
  158.     blt.b    L628
  159. L630
  160. ;        
  161.     bra    L662
  162. L631
  163. ;               GLushort *dst = (GLushort *) dest;
  164.     move.l    a0,a1
  165. ;           for (i=0;
  166.     moveq    #0,d0
  167.     bra.b    L633
  168. L632
  169. ;          dst[i] = (GLushort) index[i];
  170.     lea    -$1908(a5),a0
  171.     move.w    2(a0,d0.l*4),d1
  172.     move.w    d1,0(a1,d0.l*2)
  173.     addq.l    #1,d0
  174. L633
  175.     cmp.l    d2,d0
  176.     blt.b    L632
  177. L634
  178. ;           if (ctx->Pack.SwapBytes) 
  179.     move.l    a2,a0
  180.     add.l    #$E644,a0
  181.     tst.b    $18(a0)
  182.     beq    L662
  183. L635
  184. ;          gl_swap2( (GLushort *) dst, width );
  185.     move.l    d2,-(a7)
  186.     move.l    a1,-(a7)
  187.     jsr    _gl_swap2
  188.     addq.w    #$8,a7
  189. L636
  190. ;        
  191.     bra    L662
  192. L637
  193. ;               GLshort *dst = (GLshort *) dest;
  194.     move.l    a0,a1
  195. ;           for (i=0;
  196.     moveq    #0,d0
  197.     bra.b    L639
  198. L638
  199. ;          dst[i] = (GLshort) index[i];
  200.     lea    -$1908(a5),a0
  201.     move.w    2(a0,d0.l*4),d1
  202.     move.w    d1,0(a1,d0.l*2)
  203.     addq.l    #1,d0
  204. L639
  205.     cmp.l    d2,d0
  206.     blt.b    L638
  207. L640
  208. ;           if (ctx->Pack.SwapBytes) 
  209.     move.l    a2,a0
  210.     add.l    #$E644,a0
  211.     tst.b    $18(a0)
  212.     beq    L662
  213. L641
  214. ;          gl_swap2( (GLushort *) dst, width );
  215.     move.l    d2,-(a7)
  216.     move.l    a1,-(a7)
  217.     jsr    _gl_swap2
  218.     addq.w    #$8,a7
  219. L642
  220. ;        
  221.     bra    L662
  222. L643
  223. ;               GLuint *dst = (GLuint *) dest;
  224.     move.l    a0,a1
  225. ;           for (i=0;
  226.     moveq    #0,d0
  227.     bra.b    L645
  228. L644
  229. ;          dst[i] = (GLuint) index[i];
  230.     lea    -$1908(a5),a0
  231.     move.l    0(a0,d0.l*4),d1
  232.     move.l    d1,0(a1,d0.l*4)
  233.     addq.l    #1,d0
  234. L645
  235.     cmp.l    d2,d0
  236.     blt.b    L644
  237. L646
  238. ;           if (ctx->Pack.SwapBytes) 
  239.     move.l    a2,a0
  240.     add.l    #$E644,a0
  241.     tst.b    $18(a0)
  242.     beq    L662
  243. L647
  244. ;          gl_swap4( (GLuint *) dst, width );
  245.     move.l    d2,-(a7)
  246.     move.l    a1,-(a7)
  247.     jsr    _gl_swap4
  248.     addq.w    #$8,a7
  249. L648
  250. ;        
  251.     bra    L662
  252. L649
  253. ;               GLint *dst = (GLint *) dest;
  254.     move.l    a0,a1
  255. ;           for (i=0;
  256.     moveq    #0,d0
  257.     bra.b    L651
  258. L650
  259. ;          dst[i] = (GLint) index[i];
  260.     lea    -$1908(a5),a0
  261.     move.l    0(a0,d0.l*4),d1
  262.     move.l    d1,0(a1,d0.l*4)
  263.     addq.l    #1,d0
  264. L651
  265.     cmp.l    d2,d0
  266.     blt.b    L650
  267. L652
  268. ;           if (ctx->Pack.SwapBytes) 
  269.     move.l    a2,a0
  270.     add.l    #$E644,a0
  271.     tst.b    $18(a0)
  272.     beq.b    L662
  273. L653
  274. ;          gl_swap4( (GLuint *) dst, width );
  275.     move.l    d2,-(a7)
  276.     move.l    a1,-(a7)
  277.     jsr    _gl_swap4
  278.     addq.w    #$8,a7
  279. L654
  280. ;        
  281.     bra.b    L662
  282. L655
  283. ;               GLfloat *dst = (GLfloat *) dest;
  284.     move.l    a0,a1
  285. ;           for (i=0;
  286.     moveq    #0,d0
  287.     bra.b    L657
  288. L656
  289. ;          dst[i] = (GLfloat) index[i];
  290.     lea    -$1908(a5),a0
  291.     fmove.l    0(a0,d0.l*4),fp0
  292.     fmove.s    fp0,0(a1,d0.l*4)
  293.     addq.l    #1,d0
  294. L657
  295.     cmp.l    d2,d0
  296.     blt.b    L656
  297. L658
  298. ;           if (ctx->Pack.SwapBytes) 
  299.     move.l    a2,a0
  300.     add.l    #$E644,a0
  301.     tst.b    $18(a0)
  302.     beq.b    L662
  303. L659
  304. ;          gl_swap4( (GLuint *) dst, width );
  305.     move.l    d2,-(a7)
  306.     move.l    a1,-(a7)
  307.     jsr    _gl_swap4
  308.     addq.w    #$8,a7
  309. L660
  310. ;        
  311.     bra.b    L662
  312. L661
  313. ;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
  314.     move.l    #L613,-(a7)
  315.     pea    $500.w
  316.     move.l    a2,-(a7)
  317.     jsr    _gl_error
  318.     add.w    #$C,a7
  319. L662
  320.     addq.l    #1,d3
  321.     addq.l    #1,d4
  322. L663
  323.     cmp.l    d5,d3
  324.     blt    L617
  325. L664
  326.     movem.l    (a7)+,d2-d7/a2/a3
  327.     unlk    a5
  328.     rts
  329.  
  330. L612
  331.     dc.b    'glReadPixels',0
  332. L613
  333.     dc.b    'glReadPixels(type)',0
  334.  
  335.     SECTION "_read_depth_pixels:0",CODE
  336.  
  337.     rts
  338.  
  339. ;static void read_depth_pixels( GLcontext *ctx,
  340. _read_depth_pixels
  341. L745    EQU    -$1922
  342.     link    a5,#L745
  343.     movem.l    d2-d7/a2-a4,-(a7)
  344.     movem.l    $14(a5),d2/d7
  345.     move.l    $10(a5),d4
  346.     move.l    $8(a5),a2
  347.     move.l    $20(a5),a4
  348. L669
  349. ;   if (ctx->Visual->DepthBits <= 0) 
  350.     move.l    $8F8(a2),a0
  351.     move.l    $1C(a0),d0
  352.     cmp.l    #0,d0
  353.     bgt.b    L671
  354. L670
  355. ;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
  356.     move.l    #L667,-(a7)
  357.     pea    $502.w
  358.     move.l    a2,-(a7)
  359.     jsr    _gl_error
  360.     add.w    #$C,a7
  361.     movem.l    (a7)+,d2-d7/a2-a4
  362.     unlk    a5
  363.     rts
  364. L671
  365. ;   bias_or_scale = ctx->Pixel.DepthBias!=0.0 || ctx->Pixel.DepthS
  366.     moveq    #1,d0
  367.     move.l    a2,a0
  368.     add.l    #$B168,a0
  369.     fmove.s    $26(a0),fp0
  370.     ftst.d    fp0
  371.     fbne.b    L674
  372. L672
  373.     move.l    a2,a0
  374.     add.l    #$B168,a0
  375.     fmove.s    $2A(a0),fp0
  376.     fcmp.d    #$.3FF00000.00000000,fp0
  377.     fbne.b    L674
  378. L673
  379.     moveq    #0,d0
  380. L674
  381.     move.b    d0,d5
  382. ;   if (type==GL_UNSIGNED_SHORT && sizeof(GLdepth)==sizeof(GLushor
  383.     move.l    $1C(a5),d0
  384.     cmp.l    #$1403,d0
  385.     bne.b    L681
  386. L675
  387.     tst.b    d5
  388.     bne.b    L681
  389. L676
  390.     move.l    a2,a0
  391.     add.l    #$E644,a0
  392.     tst.b    $18(a0)
  393.     bne.b    L681
  394. L677
  395. ;      for (j=0;
  396.     moveq    #0,d3
  397.     bra.b    L679
  398. L678
  399. ;         GLushort *dst = (GLushort*) gl_pixel_addr_in_image
  400.     clr.l    -(a7)
  401.     move.l    d3,-(a7)
  402.     clr.l    -(a7)
  403.     move.l    $1C(a5),-(a7)
  404.     pea    $1902.w
  405.     move.l    d7,-(a7)
  406.     move.l    d2,-(a7)
  407.     move.l    a4,-(a7)
  408.     move.l    a2,a0
  409.     add.l    #$E644,a0
  410.     pea    (a0)
  411.     jsr    _gl_pixel_addr_in_image
  412.     add.w    #$24,a7
  413. ;         (*ctx->Driver.ReadDepthSpanInt)( ctx, width, x, y,
  414.     move.l    d0,-(a7)
  415.     move.l    d4,-(a7)
  416.     move.l    $C(a5),-(a7)
  417.     move.l    d2,-(a7)
  418.     move.l    a2,-(a7)
  419.     move.l    $994(a2),a0
  420.     jsr    (a0)
  421.     add.w    #$14,a7
  422.     addq.l    #1,d3
  423.     addq.l    #1,d4
  424. L679
  425.     cmp.l    d7,d3
  426.     blt.b    L678
  427. L680
  428.     bra    L744
  429. L681
  430. ;   else if (type==GL_UNSIGNED_INT && sizeof(GLdepth)==sizeof
  431.     move.l    $1C(a5),d0
  432.     cmp.l    #$1405,d0
  433.     bne.b    L691
  434. L682
  435.     bra.b    L691
  436. L683
  437. ;         max = max << 1;
  438.     moveq    #1,d1
  439.     asl.l    d1,d0
  440. ;         shift++;
  441.     addq.l    #1,d5
  442.     move.l    d0,d1
  443.     and.l    #$80000000,d1
  444.     beq.b    L683
  445. L684
  446. ;      for (j=0;
  447.     moveq    #0,d3
  448.     bra.b    L689
  449. L685
  450. ;         GLuint *dst = (GLuint *) gl_pixel_addr_in_image(&c
  451.     clr.l    -(a7)
  452.     move.l    d3,-(a7)
  453.     clr.l    -(a7)
  454.     move.l    $1C(a5),-(a7)
  455.     pea    $1902.w
  456.     move.l    d7,-(a7)
  457.     move.l    d2,-(a7)
  458.     move.l    a4,-(a7)
  459.     move.l    a2,a0
  460.     add.l    #$E644,a0
  461.     pea    (a0)
  462.     jsr    _gl_pixel_addr_in_image
  463.     add.w    #$24,a7
  464.     move.l    d0,a3
  465. ;         (*ctx->Driver.ReadDepthSpanInt)( ctx, width, x, y,
  466.     move.l    a3,-(a7)
  467.     move.l    d4,-(a7)
  468.     move.l    $C(a5),-(a7)
  469.     move.l    d2,-(a7)
  470.     move.l    a2,-(a7)
  471.     move.l    $994(a2),a0
  472.     jsr    (a0)
  473.     add.w    #$14,a7
  474. ;         for (i=0;
  475.     moveq    #0,d0
  476.     bra.b    L687
  477. L686
  478. ;            dst[i] = dst[i] << shift;
  479.     move.l    0(a3,d0.l*4),d1
  480.     asl.l    d5,d1
  481.     move.l    d1,0(a3,d0.l*4)
  482.     addq.l    #1,d0
  483. L687
  484.     cmp.l    d2,d0
  485.     blt.b    L686
  486. L688
  487.     addq.l    #1,d3
  488.     addq.l    #1,d4
  489. L689
  490.     cmp.l    d7,d3
  491.     blt.b    L685
  492. L690
  493.     bra    L744
  494. L691
  495. ;      for (j=0;
  496.     moveq    #0,d3
  497.     bra    L743
  498. L692
  499. ;         (*ctx->Driver.ReadDepthSpanFloat)( ctx, width, x, 
  500.     pea    -$190E(a5)
  501.     move.l    d4,-(a7)
  502.     move.l    $C(a5),-(a7)
  503.     move.l    d2,-(a7)
  504.     move.l    a2,-(a7)
  505.     move.l    $990(a2),a0
  506.     jsr    (a0)
  507.     add.w    #$14,a7
  508. ;         if (bias_or_scale) 
  509.     tst.b    d5
  510.     beq.b    L702
  511. L693
  512. ;            for (i=0;
  513.     moveq    #0,d0
  514.     bra.b    L701
  515. L694
  516. ;               d = depth[i] * ctx->Pixel.DepthScale +
  517.     lea    -$190E(a5),a0
  518.     fmove.s    0(a0,d0.l*4),fp0
  519.     move.l    a2,a0
  520.     add.l    #$B168,a0
  521.     fmul.s    $2A(a0),fp0
  522.     move.l    a2,a0
  523.     add.l    #$B168,a0
  524.     fadd.s    $26(a0),fp0
  525. ;               depth[i] = CLAMP( d, 0.0F, 1.0F );
  526.     fcmp.s    #$.00000000,fp0
  527.     fboge.b    L696
  528. L695
  529.     fmove.s    #$.00000000,fp0
  530.     bra.b    L700
  531. L696
  532.     fcmp.s    #$.3F800000,fp0
  533.     fbole.b    L698
  534. L697
  535.     fmove.s    #$.3F800000,fp0
  536. L698
  537. L699
  538. L700
  539.     lea    -$190E(a5),a0
  540.     fmove.s    fp0,0(a0,d0.l*4)
  541.     addq.l    #1,d0
  542. L701
  543.     cmp.l    d2,d0
  544.     blt.b    L694
  545. L702
  546. ;         dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
  547.     clr.l    -(a7)
  548.     move.l    d3,-(a7)
  549.     clr.l    -(a7)
  550.     move.l    $1C(a5),-(a7)
  551.     pea    $1902.w
  552.     move.l    d7,-(a7)
  553.     move.l    d2,-(a7)
  554.     move.l    a4,-(a7)
  555.     move.l    a2,a0
  556.     add.l    #$E644,a0
  557.     pea    (a0)
  558.     jsr    _gl_pixel_addr_in_image
  559.     add.w    #$24,a7
  560.     move.l    d0,a0
  561. ;         switch (type)
  562.     move.l    $1C(a5),d0
  563.     sub.l    #$1400,d0
  564.     cmp.l    #6,d0
  565.     bhi    L741
  566.     move.l    L746(pc,d0.l*4),a1
  567.     jmp    (a1)
  568. L746
  569.     dc.l    L707
  570.     dc.l    L703
  571.     dc.l    L717
  572.     dc.l    L711
  573.     dc.l    L729
  574.     dc.l    L723
  575.     dc.l    L735
  576. ;            
  577. L703
  578. ;                  GLubyte *dst = (GLubyte *) dest;
  579.     move.l    a0,a1
  580. ;                  for (i=0;
  581.     moveq    #0,d0
  582.     bra.b    L705
  583. L704
  584. ;                     dst[i] = FLOAT_TO_UBYTE( d
  585.     lea    -$190E(a5),a0
  586.     fmove.s    0(a0,d0.l*4),fp0
  587.     fmul.s    #$.437F0000,fp0
  588.     fmove.l    fp0,d1
  589.     move.b    d1,0(a1,d0.l)
  590.     addq.l    #1,d0
  591. L705
  592.     cmp.l    d2,d0
  593.     blt.b    L704
  594. L706
  595. ;               
  596.     bra    L742
  597. L707
  598. ;                  GLbyte *dst = (GLbyte *) dest;
  599.     move.l    a0,a1
  600. ;                  for (i=0;
  601.     moveq    #0,d0
  602.     bra.b    L709
  603. L708
  604. ;                     dst[i] = FLOAT_TO_BYTE( de
  605.     lea    -$190E(a5),a0
  606.     fmove.s    0(a0,d0.l*4),fp0
  607.     fmul.s    #$.437F0000,fp0
  608.     fmove.l    fp0,d1
  609.     subq.l    #1,d1
  610.     divsl.l    #2,d1
  611.     move.b    d1,0(a1,d0.l)
  612.     addq.l    #1,d0
  613. L709
  614.     cmp.l    d2,d0
  615.     blt.b    L708
  616. L710
  617. ;               
  618.     bra    L742
  619. L711
  620. ;                  GLushort *dst = (GLushort *) des
  621.     move.l    a0,a1
  622. ;                  for (i=0;
  623.     moveq    #0,d0
  624.     bra.b    L713
  625. L712
  626. ;                     dst[i] = FLOAT_TO_USHORT( 
  627.     lea    -$190E(a5),a0
  628.     fmove.s    0(a0,d0.l*4),fp0
  629.     fmul.s    #$.477FFF00,fp0
  630.     fmove.l    fp0,d1
  631.     move.w    d1,0(a1,d0.l*2)
  632.     addq.l    #1,d0
  633. L713
  634.     cmp.l    d2,d0
  635.     blt.b    L712
  636. L714
  637. ;                  if (ctx->Pack.SwapBytes) 
  638.     move.l    a2,a0
  639.     add.l    #$E644,a0
  640.     tst.b    $18(a0)
  641.     beq.b    L716
  642. L715
  643. ;                     gl_swap2( (GLushort *) dst
  644.     move.l    d2,-(a7)
  645.     move.l    a1,-(a7)
  646.     jsr    _gl_swap2
  647.     addq.w    #$8,a7
  648. L716
  649. ;               
  650.     bra    L742
  651. L717
  652. ;                  GLshort *dst = (GLshort *) dest;
  653.     move.l    a0,a1
  654. ;                  for (i=0;
  655.     moveq    #0,d0
  656.     bra.b    L719
  657. L718
  658. ;                     dst[i] = FLOAT_TO_SHORT( d
  659.     lea    -$190E(a5),a0
  660.     fmove.s    0(a0,d0.l*4),fp0
  661.     fmul.s    #$.477FFF00,fp0
  662.     fmove.l    fp0,d1
  663.     subq.l    #1,d1
  664.     divsl.l    #2,d1
  665.     move.w    d1,0(a1,d0.l*2)
  666.     addq.l    #1,d0
  667. L719
  668.     cmp.l    d2,d0
  669.     blt.b    L718
  670. L720
  671. ;                  if (ctx->Pack.SwapBytes) 
  672.     move.l    a2,a0
  673.     add.l    #$E644,a0
  674.     tst.b    $18(a0)
  675.     beq.b    L722
  676. L721
  677. ;                     gl_swap2( (GLushort *) dst
  678.     move.l    d2,-(a7)
  679.     move.l    a1,-(a7)
  680.     jsr    _gl_swap2
  681.     addq.w    #$8,a7
  682. L722
  683. ;               
  684.     bra    L742
  685. L723
  686. ;                  GLuint *dst = (GLuint *) dest;
  687.     move.l    a0,a1
  688. ;                  for (i=0;
  689.     moveq    #0,d0
  690.     bra.b    L725
  691. L724
  692. ;                     dst[i] = FLOAT_TO_UINT( de
  693.     lea    -$190E(a5),a0
  694.     fmove.s    0(a0,d0.l*4),fp0
  695.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  696.     fmove.l    fp0,d1
  697.     move.l    d1,0(a1,d0.l*4)
  698.     addq.l    #1,d0
  699. L725
  700.     cmp.l    d2,d0
  701.     blt.b    L724
  702. L726
  703. ;                  if (ctx->Pack.SwapBytes) 
  704.     move.l    a2,a0
  705.     add.l    #$E644,a0
  706.     tst.b    $18(a0)
  707.     beq.b    L728
  708. L727
  709. ;                     gl_swap4( (GLuint *) dst, 
  710.     move.l    d2,-(a7)
  711.     move.l    a1,-(a7)
  712.     jsr    _gl_swap4
  713.     addq.w    #$8,a7
  714. L728
  715. ;               
  716.     bra    L742
  717. L729
  718. ;                  GLint *dst = (GLint *) dest;
  719.     move.l    a0,a1
  720. ;                  for (i=0;
  721.     moveq    #0,d0
  722.     bra.b    L731
  723. L730
  724. ;                     dst[i] = FLOAT_TO_INT( dep
  725.     lea    -$190E(a5),a0
  726.     fmove.s    0(a0,d0.l*4),fp0
  727.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  728.     fmove.l    fp0,d1
  729.     move.l    d1,0(a1,d0.l*4)
  730.     addq.l    #1,d0
  731. L731
  732.     cmp.l    d2,d0
  733.     blt.b    L730
  734. L732
  735. ;                  if (ctx->Pack.SwapBytes) 
  736.     move.l    a2,a0
  737.     add.l    #$E644,a0
  738.     tst.b    $18(a0)
  739.     beq.b    L734
  740. L733
  741. ;                     gl_swap4( (GLuint *) dst, 
  742.     move.l    d2,-(a7)
  743.     move.l    a1,-(a7)
  744.     jsr    _gl_swap4
  745.     addq.w    #$8,a7
  746. L734
  747. ;               
  748.     bra.b    L742
  749. L735
  750. ;                  GLfloat *dst = (GLfloat *) dest;
  751.     move.l    a0,a1
  752. ;                  for (i=0;
  753.     moveq    #0,d0
  754.     bra.b    L737
  755. L736
  756. ;                     dst[i] = depth[i];
  757.     lea    -$190E(a5),a0
  758.     fmove.s    0(a0,d0.l*4),fp0
  759.     fmove.s    fp0,0(a1,d0.l*4)
  760.     addq.l    #1,d0
  761. L737
  762.     cmp.l    d2,d0
  763.     blt.b    L736
  764. L738
  765. ;                  if (ctx->Pack.SwapBytes) 
  766.     move.l    a2,a0
  767.     add.l    #$E644,a0
  768.     tst.b    $18(a0)
  769.     beq.b    L740
  770. L739
  771. ;                     gl_swap4( (GLuint *) dst, 
  772.     move.l    d2,-(a7)
  773.     move.l    a1,-(a7)
  774.     jsr    _gl_swap4
  775.     addq.w    #$8,a7
  776. L740
  777. ;               
  778.     bra.b    L742
  779. L741
  780. ;               gl_error( ctx, GL_INVALID_ENUM, "glRea
  781.     move.l    #L668,-(a7)
  782.     pea    $500.w
  783.     move.l    a2,-(a7)
  784.     jsr    _gl_error
  785.     add.w    #$C,a7
  786. L742
  787.     addq.l    #1,d3
  788.     addq.l    #1,d4
  789. L743
  790.     cmp.l    d7,d3
  791.     blt    L692
  792. L744
  793.     movem.l    (a7)+,d2-d7/a2-a4
  794.     unlk    a5
  795.     rts
  796.  
  797. L667
  798.     dc.b    'glReadPixels',0
  799. L668
  800.     dc.b    'glReadPixels(type)',0
  801.  
  802.     SECTION "_read_stencil_pixels:0",CODE
  803.  
  804.  
  805. ;static void read_stencil_pixels( GLcontext *ctx,
  806. _read_stencil_pixels
  807. L796    EQU    -$65C
  808.     link    a5,#L796
  809.     movem.l    d2-d7/a2/a3,-(a7)
  810.     movem.l    $14(a5),d2/d5/d7/a3
  811.     move.l    $10(a5),d4
  812.     move.l    $8(a5),a2
  813. L749
  814. ;   if (ctx->Visual->StencilBits<=0) 
  815.     move.l    $8F8(a2),a0
  816.     move.l    $20(a0),d0
  817.     cmp.l    #0,d0
  818.     bgt.b    L751
  819. L750
  820. ;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
  821.     move.l    #L747,-(a7)
  822.     pea    $502.w
  823.     move.l    a2,-(a7)
  824.     jsr    _gl_error
  825.     add.w    #$C,a7
  826.     movem.l    (a7)+,d2-d7/a2/a3
  827.     unlk    a5
  828.     rts
  829. L751
  830. ;   shift_or_offset = ctx->Pixel.IndexShift!=0 || ctx->Pixel.Index
  831.     moveq    #1,d0
  832.     move.l    a2,a0
  833.     add.l    #$B168,a0
  834.     tst.l    $2E(a0)
  835.     bne.b    L754
  836. L752
  837.     move.l    a2,a0
  838.     add.l    #$B168,a0
  839.     tst.l    $32(a0)
  840.     bne.b    L754
  841. L753
  842.     moveq    #0,d0
  843. L754
  844.     move.b    d0,-1(a5)
  845. ;   for (j=0;
  846.     moveq    #0,d3
  847.     bra    L794
  848. L755
  849. ;      gl_read_stencil_span( ctx, width, x, y, stencil );
  850.     pea    -$64E(a5)
  851.     move.l    d4,-(a7)
  852.     move.l    $C(a5),-(a7)
  853.     move.l    d2,-(a7)
  854.     move.l    a2,-(a7)
  855.     jsr    _gl_read_stencil_span
  856.     add.w    #$14,a7
  857. ;      if (shift_or_offset) 
  858.     tst.b    -1(a5)
  859.     beq.b    L757
  860. L756
  861. ;         gl_shift_and_offset_stencil( ctx, width, stencil );
  862.     pea    -$64E(a5)
  863.     move.l    d2,-(a7)
  864.     move.l    a2,-(a7)
  865.     jsr    _gl_shift_and_offset_stencil
  866.     add.w    #$C,a7
  867. L757
  868. ;      if (ctx->Pixel.MapStencilFlag) 
  869.     move.l    a2,a0
  870.     add.l    #$B168,a0
  871.     tst.b    $37(a0)
  872.     beq.b    L759
  873. L758
  874. ;         gl_map_stencil( ctx, width, stencil );
  875.     pea    -$64E(a5)
  876.     move.l    d2,-(a7)
  877.     move.l    a2,-(a7)
  878.     jsr    _gl_map_stencil
  879.     add.w    #$C,a7
  880. L759
  881. ;      dest = gl_pixel_addr_in_image(&ctx->Pack, pixels,
  882.     clr.l    -(a7)
  883.     move.l    d3,-(a7)
  884.     clr.l    -(a7)
  885.     move.l    d7,-(a7)
  886.     pea    $1901.w
  887.     move.l    d5,-(a7)
  888.     move.l    d2,-(a7)
  889.     move.l    a3,-(a7)
  890.     move.l    a2,a0
  891.     add.l    #$E644,a0
  892.     pea    (a0)
  893.     jsr    _gl_pixel_addr_in_image
  894.     add.w    #$24,a7
  895.     move.l    d0,a0
  896. ;      switch (type)
  897.     move.l    d7,d0
  898.     sub.l    #$1400,d0
  899.     cmp.l    #6,d0
  900.     bhi    L792
  901.     move.l    L797(pc,d0.l*4),a1
  902.     jmp    (a1)
  903. L797
  904.     dc.l    L761
  905.     dc.l    L760
  906.     dc.l    L768
  907.     dc.l    L762
  908.     dc.l    L780
  909.     dc.l    L774
  910.     dc.l    L786
  911. ;     
  912. L760
  913. ;            MEMCPY( dest, s
  914.     move.l    d2,-(a7)
  915.     pea    -$64E(a5)
  916.     move.l    a0,-(a7)
  917.     jsr    _q_memcpy
  918.     add.w    #$C,a7
  919. ;        
  920.     bra    L793
  921. L761
  922. ;            MEMCPY( dest, s
  923.     move.l    d2,-(a7)
  924.     pea    -$64E(a5)
  925.     move.l    a0,-(a7)
  926.     jsr    _q_memcpy
  927.     add.w    #$C,a7
  928. ;        
  929.     bra    L793
  930. L762
  931. ;               GLushort *dst = (GLushort *) dest;
  932.     move.l    a0,a1
  933. ;           for (i=0;
  934.     moveq    #0,d0
  935.     bra.b    L764
  936. L763
  937. ;          dst[i] = (GLushort) stencil[i];
  938.     lea    -$64E(a5),a0
  939.     moveq    #0,d1
  940.     move.b    0(a0,d0.l),d1
  941.     move.w    d1,0(a1,d0.l*2)
  942.     addq.l    #1,d0
  943. L764
  944.     cmp.l    d2,d0
  945.     blt.b    L763
  946. L765
  947. ;           if (ctx->Pack.SwapBytes) 
  948.     move.l    a2,a0
  949.     add.l    #$E644,a0
  950.     tst.b    $18(a0)
  951.     beq.b    L767
  952. L766
  953. ;          gl_swap2( (GLushort *) dst, width );
  954.     move.l    d2,-(a7)
  955.     move.l    a1,-(a7)
  956.     jsr    _gl_swap2
  957.     addq.w    #$8,a7
  958. L767
  959. ;        
  960.     bra    L793
  961. L768
  962. ;               GLshort *dst = (GLshort *) dest;
  963.     move.l    a0,a1
  964. ;           for (i=0;
  965.     moveq    #0,d0
  966.     bra.b    L770
  967. L769
  968. ;          dst[i] = (GLshort) stencil[i];
  969.     lea    -$64E(a5),a0
  970.     moveq    #0,d1
  971.     move.b    0(a0,d0.l),d1
  972.     move.w    d1,0(a1,d0.l*2)
  973.     addq.l    #1,d0
  974. L770
  975.     cmp.l    d2,d0
  976.     blt.b    L769
  977. L771
  978. ;           if (ctx->Pack.SwapBytes) 
  979.     move.l    a2,a0
  980.     add.l    #$E644,a0
  981.     tst.b    $18(a0)
  982.     beq.b    L773
  983. L772
  984. ;          gl_swap2( (GLushort *) dst, width );
  985.     move.l    d2,-(a7)
  986.     move.l    a1,-(a7)
  987.     jsr    _gl_swap2
  988.     addq.w    #$8,a7
  989. L773
  990. ;        
  991.     bra    L793
  992. L774
  993. ;               GLuint *dst = (GLuint *) dest;
  994.     move.l    a0,a1
  995. ;           for (i=0;
  996.     moveq    #0,d0
  997.     bra.b    L776
  998. L775
  999. ;          dst[i] = (GLuint) stencil[i];
  1000.     lea    -$64E(a5),a0
  1001.     moveq    #0,d1
  1002.     move.b    0(a0,d0.l),d1
  1003.     move.l    d1,0(a1,d0.l*4)
  1004.     addq.l    #1,d0
  1005. L776
  1006.     cmp.l    d2,d0
  1007.     blt.b    L775
  1008. L777
  1009. ;           if (ctx->Pack.SwapBytes) 
  1010.     move.l    a2,a0
  1011.     add.l    #$E644,a0
  1012.     tst.b    $18(a0)
  1013.     beq.b    L779
  1014. L778
  1015. ;          gl_swap4( (GLuint *) dst, width );
  1016.     move.l    d2,-(a7)
  1017.     move.l    a1,-(a7)
  1018.     jsr    _gl_swap4
  1019.     addq.w    #$8,a7
  1020. L779
  1021. ;        
  1022.     bra    L793
  1023. L780
  1024. ;               GLint *dst = (GLint *) dest;
  1025. ;           for (i=0;
  1026.     moveq    #0,d0
  1027.     bra.b    L782
  1028. L781
  1029. ;          *dst++ = (GLint) stencil[i];
  1030.     lea    -$64E(a5),a1
  1031.     moveq    #0,d1
  1032.     move.b    0(a1,d0.l),d1
  1033.     move.l    d1,(a0)+
  1034.     addq.l    #1,d0
  1035. L782
  1036.     cmp.l    d2,d0
  1037.     blt.b    L781
  1038. L783
  1039. ;           if (ctx->Pack.SwapBytes) 
  1040.     move.l    a2,a1
  1041.     add.l    #$E644,a1
  1042.     tst.b    $18(a1)
  1043.     beq.b    L785
  1044. L784
  1045. ;          gl_swap4( (GLuint *) dst, width );
  1046.     move.l    d2,-(a7)
  1047.     move.l    a0,-(a7)
  1048.     jsr    _gl_swap4
  1049.     addq.w    #$8,a7
  1050. L785
  1051. ;        
  1052.     bra.b    L793
  1053. L786
  1054. ;               GLfloat *dst = (GLfloat *) dest;
  1055.     move.l    a0,a1
  1056. ;           for (i=0;
  1057.     moveq    #0,d0
  1058.     bra.b    L788
  1059. L787
  1060. ;          dst[i] = (GLfloat) stencil[i];
  1061.     lea    -$64E(a5),a0
  1062.     moveq    #0,d1
  1063.     move.b    0(a0,d0.l),d1
  1064.     fmove.l    d1,fp0
  1065.     fmove.s    fp0,0(a1,d0.l*4)
  1066.     addq.l    #1,d0
  1067. L788
  1068.     cmp.l    d2,d0
  1069.     blt.b    L787
  1070. L789
  1071. ;           if (ctx->Pack.SwapBytes) 
  1072.     move.l    a2,a0
  1073.     add.l    #$E644,a0
  1074.     tst.b    $18(a0)
  1075.     beq.b    L791
  1076. L790
  1077. ;          gl_swap4( (GLuint *) dst, width );
  1078.     move.l    d2,-(a7)
  1079.     move.l    a1,-(a7)
  1080.     jsr    _gl_swap4
  1081.     addq.w    #$8,a7
  1082. L791
  1083. ;        
  1084.     bra.b    L793
  1085. L792
  1086. ;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
  1087.     move.l    #L748,-(a7)
  1088.     pea    $500.w
  1089.     move.l    a2,-(a7)
  1090.     jsr    _gl_error
  1091.     add.w    #$C,a7
  1092. L793
  1093.     addq.l    #1,d3
  1094.     addq.l    #1,d4
  1095. L794
  1096.     cmp.l    d5,d3
  1097.     blt    L755
  1098. L795
  1099.     movem.l    (a7)+,d2-d7/a2/a3
  1100.     unlk    a5
  1101.     rts
  1102.  
  1103. L747
  1104.     dc.b    'glReadPixels',0
  1105. L748
  1106.     dc.b    'glReadPixels(type)',0
  1107.  
  1108.     SECTION "_read_fast_rgba_pixels:0",CODE
  1109.  
  1110.  
  1111. ;         }
  1112. _read_fast_rgba_pixels
  1113. L827    EQU    -$28
  1114.     link    a5,#L827
  1115.     movem.l    d2-d7/a2/a3,-(a7)
  1116.     move.l    $18(a5),d1
  1117.     move.l    $10(a5),d2
  1118.     move.l    $C(a5),d3
  1119.     move.l    $14(a5),d6
  1120.     move.l    $24(a5),a1
  1121.     move.l    $8(a5),a2
  1122. L798
  1123. ;   if (ctx->Pixel.ScaleOrBiasRGBA || ctx->Pixel.MapColorFlag)
  1124.     move.l    a2,a0
  1125.     add.l    #$B168,a0
  1126.     tst.b    $24(a0)
  1127.     bne.b    L800
  1128. L799
  1129.     move.l    a2,a0
  1130.     add.l    #$B168,a0
  1131.     tst.b    $36(a0)
  1132.     beq.b    L801
  1133. L800
  1134.     moveq    #0,d0
  1135.     movem.l    (a7)+,d2-d7/a2/a3
  1136.     unlk    a5
  1137.     rts
  1138. L801
  1139. ;   if (ctx->Pack.Alignment != 1 || ctx->Pack.SwapBytes || ctx->Pa
  1140.     move.l    a2,a0
  1141.     add.l    #$E644,a0
  1142.     move.l    (a0),d0
  1143.     cmp.l    #1,d0
  1144.     bne.b    L804
  1145. L802
  1146.     move.l    a2,a0
  1147.     add.l    #$E644,a0
  1148.     tst.b    $18(a0)
  1149.     bne.b    L804
  1150. L803
  1151.     move.l    a2,a0
  1152.     add.l    #$E644,a0
  1153.     tst.b    $19(a0)
  1154.     beq.b    L805
  1155. L804
  1156.     moveq    #0,d0
  1157.     movem.l    (a7)+,d2-d7/a2/a3
  1158.     unlk    a5
  1159.     rts
  1160. L805
  1161. ;      GLint srcX = x;
  1162.     move.l    d3,d7
  1163. ;      GLint srcY = y;
  1164. ;      GLint readWidth = width;
  1165.     move.l    d6,d5
  1166. ;      GLint readHeight = height;
  1167.     move.l    d1,d4
  1168. ;      GLint skipPixels = ctx->Pack.SkipPixels;
  1169.     move.l    a2,a0
  1170.     add.l    #$E644,a0
  1171.     move.l    $8(a0),d3
  1172. ;      GLint skipRows = ctx->Pack.SkipRows;
  1173.     move.l    a2,a0
  1174.     add.l    #$E644,a0
  1175.     move.l    $C(a0),d0
  1176. ;      if (ctx->Pack.RowLength > 0)
  1177.     move.l    a2,a0
  1178.     add.l    #$E644,a0
  1179.     move.l    4(a0),d1
  1180.     cmp.l    #0,d1
  1181.     ble.b    L807
  1182. L806
  1183. ;         rowLength = ctx->Pack.RowLength;
  1184.     move.l    a2,a0
  1185.     add.l    #$E644,a0
  1186.     move.l    4(a0),-$1C(a5)
  1187.     bra.b    L808
  1188. L807
  1189. ;         rowLength = width;
  1190.     move.l    d6,-$1C(a5)
  1191. L808
  1192. ;      if (srcX < ctx->Buffer->Xmin) 
  1193.     move.l    $8FC(a2),a0
  1194.     move.l    d7,d6
  1195.     cmp.l    $24(a0),d6
  1196.     bge.b    L810
  1197. L809
  1198. ;         skipPixels += (ctx->Buffer->Xmin - srcX);
  1199.     move.l    $8FC(a2),a0
  1200.     move.l    $24(a0),d1
  1201.     sub.l    d7,d1
  1202.     add.l    d1,d3
  1203. ;         readWidth  -= (ctx->Buffer->Xmin - srcX);
  1204.     move.l    $8FC(a2),a0
  1205.     move.l    $24(a0),d1
  1206.     sub.l    d7,d1
  1207.     sub.l    d1,d5
  1208. ;         srcX = ctx->Buffer->Xmin;
  1209.     move.l    $8FC(a2),a0
  1210.     move.l    $24(a0),d7
  1211. L810
  1212. ;      if (srcX + readWidth > ctx->Buffer->Xmax)
  1213.     move.l    d7,d1
  1214.     add.l    d5,d1
  1215.     move.l    d1,d6
  1216.     move.l    $8FC(a2),a0
  1217.     cmp.l    $28(a0),d6
  1218.     ble.b    L812
  1219. L811
  1220. ;         readWidth -= (srcX + readWidth - ctx->Buffer->Xmax
  1221.     move.l    d7,d1
  1222.     add.l    d5,d1
  1223.     move.l    $8FC(a2),a0
  1224.     sub.l    $28(a0),d1
  1225.     subq.l    #1,d1
  1226.     sub.l    d1,d5
  1227. L812
  1228. ;      if (readWidth <= 0)
  1229.     cmp.l    #0,d5
  1230.     bgt.b    L814
  1231. L813
  1232.     moveq    #1,d0
  1233.     movem.l    (a7)+,d2-d7/a2/a3
  1234.     unlk    a5
  1235.     rts
  1236. L814
  1237. ;      if (srcY < ctx->Buffer->Ymin) 
  1238.     move.l    $8FC(a2),a0
  1239.     cmp.l    $2C(a0),d2
  1240.     bge.b    L816
  1241. L815
  1242. ;         skipRows   += (ctx->Buffer->Ymin - srcY);
  1243.     move.l    $8FC(a2),a0
  1244.     move.l    $2C(a0),d1
  1245.     sub.l    d2,d1
  1246.     add.l    d1,d0
  1247. ;         readHeight -= (ctx->Buffer->Ymin - srcY);
  1248.     move.l    $8FC(a2),a0
  1249.     move.l    $2C(a0),d1
  1250.     sub.l    d2,d1
  1251.     sub.l    d1,d4
  1252. ;         srcY = ctx->Buffer->Ymin;
  1253.     move.l    $8FC(a2),a0
  1254.     move.l    $2C(a0),d2
  1255. L816
  1256. ;      if (srcY + readHeight > ctx->Buffer->Ymax)
  1257.     move.l    d2,d1
  1258.     add.l    d4,d1
  1259.     move.l    d1,d6
  1260.     move.l    $8FC(a2),a0
  1261.     cmp.l    $30(a0),d6
  1262.     ble.b    L818
  1263. L817
  1264. ;         readHeight -= (srcY + readHeight - ctx->Buffer->Ym
  1265.     move.l    d2,d1
  1266.     add.l    d4,d1
  1267.     move.l    $8FC(a2),a0
  1268.     sub.l    $30(a0),d1
  1269.     subq.l    #1,d1
  1270.     sub.l    d1,d4
  1271. L818
  1272. ;      if (readHeight <= 0)
  1273.     cmp.l    #0,d4
  1274.     bgt.b    L820
  1275. L819
  1276.     moveq    #1,d0
  1277.     movem.l    (a7)+,d2-d7/a2/a3
  1278.     unlk    a5
  1279.     rts
  1280. L820
  1281. ;      if (format==GL_RGBA && type==GL_UNSIGNED_BYTE) 
  1282.     move.l    $1C(a5),d1
  1283.     cmp.l    #$1908,d1
  1284.     bne.b    L826
  1285. L821
  1286.     move.l    $20(a5),d1
  1287.     cmp.l    #$1401,d1
  1288.     bne.b    L826
  1289. L822
  1290. ;         GLubyte *dest = (GLubyte *) pixels
  1291.     muls.l    -$1C(a5),d0
  1292.     add.l    d3,d0
  1293.     moveq    #2,d1
  1294.     asl.l    d1,d0
  1295.     add.l    a1,d0
  1296.     move.l    d0,a3
  1297. ;         for (row=0;
  1298.     moveq    #0,d3
  1299.     bra.b    L824
  1300. L823
  1301. ;            (*ctx->Driver.ReadRGBASpan)(ctx, readWidth, 
  1302.     move.l    a3,-(a7)
  1303.     move.l    d2,-(a7)
  1304.     move.l    d7,-(a7)
  1305.     move.l    d5,-(a7)
  1306.     move.l    a2,-(a7)
  1307.     move.l    $950(a2),a0
  1308.     jsr    (a0)
  1309.     add.w    #$14,a7
  1310. ;            dest += rowLength * 4;
  1311.     move.l    -$1C(a5),d0
  1312.     moveq    #2,d1
  1313.     asl.l    d1,d0
  1314.     add.l    a3,d0
  1315.     move.l    d0,a3
  1316. ;            srcY++;
  1317.     addq.l    #1,d2
  1318.     addq.l    #1,d3
  1319. L824
  1320.     cmp.l    d4,d3
  1321.     blt.b    L823
  1322. L825
  1323.     moveq    #1,d0
  1324.     movem.l    (a7)+,d2-d7/a2/a3
  1325.     unlk    a5
  1326.     rts
  1327. L826
  1328.     moveq    #0,d0
  1329.     movem.l    (a7)+,d2-d7/a2/a3
  1330.     unlk    a5
  1331.     rts
  1332.  
  1333.     SECTION "_read_rgba_pixels:0",CODE
  1334.  
  1335.  
  1336. ;       * Pack/transfer/store the pixe
  1337. _read_rgba_pixels
  1338. L1302    EQU    -$AF10
  1339.     link    a5,#L1302
  1340.     movem.l    d2-d7/a2-a4,-(a7)
  1341.     fmovem.x fp2/fp3/fp4/fp5,-(a7)
  1342.     move.l    $14(a5),d2
  1343.     move.l    $1C(a5),d3
  1344.     move.l    $20(a5),d5
  1345.     move.l    $8(a5),a3
  1346.     move.l    $24(a5),a4
  1347. L831
  1348. ;   n = gl_components_in_format(format);
  1349.     move.l    d3,-(a7)
  1350.     jsr    _gl_components_in_format
  1351.     addq.w    #4,a7
  1352.     move.l    d0,-$10(a5)
  1353. ;   if (n <= 0) 
  1354.     move.l    -$10(a5),d0
  1355.     cmp.l    #0,d0
  1356.     bgt.b    L833
  1357. L832
  1358. ;      gl_error(ctx, GL_INVALID_ENUM, "glReadPixels(format)");
  1359.     move.l    #L828,-(a7)
  1360.     pea    $500.w
  1361.     move.l    a3,-(a7)
  1362.     jsr    _gl_error
  1363.     add.w    #$C,a7
  1364.     fmovem.x (a7)+,fp2/fp3/fp4/fp5
  1365.     movem.l    (a7)+,d2-d7/a2-a4
  1366.     unlk    a5
  1367.     rts
  1368. L833
  1369. ;   s = gl_sizeof_type( type );
  1370.     move.l    d5,-(a7)
  1371.     jsr    _gl_sizeof_type
  1372.     addq.w    #4,a7
  1373. ;   if (s <= 0) 
  1374.     cmp.l    #0,d0
  1375.     bgt.b    L835
  1376. L834
  1377. ;      gl_error( ctx, GL_INVALID_ENUM, "glReadPixels(type)" );
  1378.     move.l    #L829,-(a7)
  1379.     pea    $500.w
  1380.     move.l    a3,-(a7)
  1381.     jsr    _gl_error
  1382.     add.w    #$C,a7
  1383.     fmovem.x (a7)+,fp2/fp3/fp4/fp5
  1384.     movem.l    (a7)+,d2-d7/a2-a4
  1385.     unlk    a5
  1386.     rts
  1387. L835
  1388. ;   for (j=0;
  1389.     moveq    #0,d4
  1390.     bra    L1300
  1391. L836
  1392. ;      if (ctx->Visual->RGBAflag) 
  1393.     move.l    a3,a1
  1394.     move.l    $8F8(a1),a0
  1395.     tst.b    (a0)
  1396.     beq    L845
  1397. L837
  1398. ;     GLfloat rscale = (1.0F / 255.0F);
  1399.     fmove.s    #$.3B808080,fp5
  1400. ;     GLfloat gscale = (1.0F / 255.0F);
  1401.     fmove.s    #$.3B808080,fp4
  1402. ;     GLfloat bscale = (1.0F / 255.0F);
  1403.     fmove.s    #$.3B808080,fp3
  1404. ;     GLfloat ascale = (1.0F / 255.0F);
  1405.     fmove.s    #$.3B808080,fp2
  1406. ;         gl_read_rgba_span(ctx, width, x, y, rgba );
  1407.     move.l    a5,a0
  1408.     sub.l    #$9610,a0
  1409.     pea    (a0)
  1410.     move.l    $10(a5),-(a7)
  1411.     move.l    $C(a5),-(a7)
  1412.     move.l    d2,-(a7)
  1413.     move.l    a3,-(a7)
  1414.     jsr    _gl_read_rgba_span
  1415.     add.w    #$14,a7
  1416. ;     for (i=0;
  1417.     moveq    #0,d0
  1418.     bra    L839
  1419. L838
  1420. ;        red[i]   = rgba[i][RCOMP] * rscale;
  1421.     move.l    a5,a0
  1422.     sub.l    #$9610,a0
  1423.     moveq    #0,d1
  1424.     move.b    0(a0,d0.l*4),d1
  1425.     fmove.l    d1,fp0
  1426.     fmul.x    fp5,fp0
  1427.     lea    -$1910(a5),a0
  1428.     fmove.s    fp0,0(a0,d0.l*4)
  1429. ;        green[i] = rgba[i][GCOMP] * gscale;
  1430.     move.l    a5,a0
  1431.     sub.l    #$9610,a0
  1432.     lea    0(a0,d0.l*4),a0
  1433.     moveq    #0,d1
  1434.     move.b    1(a0),d1
  1435.     fmove.l    d1,fp0
  1436.     fmul.x    fp4,fp0
  1437.     lea    -$3210(a5),a0
  1438.     fmove.s    fp0,0(a0,d0.l*4)
  1439. ;        blue[i]  = rgba[i][BCOMP] * bscale;
  1440.     move.l    a5,a0
  1441.     sub.l    #$9610,a0
  1442.     lea    0(a0,d0.l*4),a0
  1443.     moveq    #0,d1
  1444.     move.b    2(a0),d1
  1445.     fmove.l    d1,fp0
  1446.     fmul.x    fp3,fp0
  1447.     lea    -$4B10(a5),a0
  1448.     fmove.s    fp0,0(a0,d0.l*4)
  1449. ;        alpha[i] = rgba[i][ACOMP] * ascale;
  1450.     move.l    a5,a0
  1451.     sub.l    #$9610,a0
  1452.     lea    0(a0,d0.l*4),a0
  1453.     moveq    #0,d1
  1454.     move.b    3(a0),d1
  1455.     fmove.l    d1,fp0
  1456.     fmul.x    fp2,fp0
  1457.     lea    -$6410(a5),a0
  1458.     fmove.s    fp0,0(a0,d0.l*4)
  1459.     addq.l    #1,d0
  1460. L839
  1461.     cmp.l    d2,d0
  1462.     blt    L838
  1463. L840
  1464. ;     if (ctx->Pixel.ScaleOrBiasRGBA) 
  1465.     move.l    a3,a0
  1466.     add.l    #$B168,a0
  1467.     tst.b    $24(a0)
  1468.     beq.b    L842
  1469. L841
  1470. ;        gl_scale_and_bias_color( ctx, width, red, green, blue, alp
  1471.     pea    -$6410(a5)
  1472.     pea    -$4B10(a5)
  1473.     pea    -$3210(a5)
  1474.     pea    -$1910(a5)
  1475.     move.l    d2,-(a7)
  1476.     move.l    a3,-(a7)
  1477.     jsr    _gl_scale_and_bias_color
  1478.     add.w    #$18,a7
  1479. L842
  1480. ;     if (ctx->Pixel.MapColorFlag) 
  1481.     move.l    a3,a0
  1482.     add.l    #$B168,a0
  1483.     tst.b    $36(a0)
  1484.     beq.b    L844
  1485. L843
  1486. ;        gl_map_color( ctx, width, red, green, blue, alpha );
  1487.     pea    -$6410(a5)
  1488.     pea    -$4B10(a5)
  1489.     pea    -$3210(a5)
  1490.     pea    -$1910(a5)
  1491.     move.l    d2,-(a7)
  1492.     move.l    a3,-(a7)
  1493.     jsr    _gl_map_color
  1494.     add.w    #$18,a7
  1495. L844
  1496.     bra    L849
  1497. L845
  1498. ;     (*ctx->Driver.ReadCI32Span)( ctx, width, x, y, index );
  1499.     move.l    a5,a0
  1500.     sub.l    #$AF10,a0
  1501.     pea    (a0)
  1502.     move.l    $10(a5),-(a7)
  1503.     move.l    $C(a5),-(a7)
  1504.     move.l    d2,-(a7)
  1505.     move.l    a3,-(a7)
  1506.     move.l    $94C(a3),a0
  1507.     jsr    (a0)
  1508.     add.w    #$14,a7
  1509. ;     if (ctx->Pixel.IndexShift!=0 || ctx->Pixel.IndexOffset!=0) 
  1510.     move.l    a3,a0
  1511.     add.l    #$B168,a0
  1512.     tst.l    $2E(a0)
  1513.     bne.b    L847
  1514. L846
  1515.     move.l    a3,a0
  1516.     add.l    #$B168,a0
  1517.     tst.l    $32(a0)
  1518.     beq.b    L848
  1519. L847
  1520. ;            gl_map_ci( ctx, width, index );
  1521.     move.l    a5,a0
  1522.     sub.l    #$AF10,a0
  1523.     pea    (a0)
  1524.     move.l    d2,-(a7)
  1525.     move.l    a3,-(a7)
  1526.     jsr    _gl_map_ci
  1527.     add.w    #$C,a7
  1528. L848
  1529. ;         gl_map_ci_to_color(ctx, width, index, red, green, 
  1530.     pea    -$6410(a5)
  1531.     pea    -$4B10(a5)
  1532.     pea    -$3210(a5)
  1533.     pea    -$1910(a5)
  1534.     move.l    a5,a0
  1535.     sub.l    #$AF10,a0
  1536.     pea    (a0)
  1537.     move.l    d2,-(a7)
  1538.     move.l    a3,-(a7)
  1539.     jsr    _gl_map_ci_to_color
  1540.     add.w    #$1C,a7
  1541. L849
  1542. ;      if (format==GL_LUMINANCE || format==GL_LUMINANCE_ALPHA) 
  1543.     cmp.l    #$1909,d3
  1544.     beq.b    L851
  1545. L850
  1546.     cmp.l    #$190A,d3
  1547.     bne.b    L860
  1548. L851
  1549. ;         for (i=0;
  1550.     moveq    #0,d0
  1551.     bra.b    L859
  1552. L852
  1553. ;            GLfloat sum = red[i] + green[i] + blue[i];
  1554.     lea    -$1910(a5),a0
  1555.     fmove.s    0(a0,d0.l*4),fp0
  1556.     lea    -$3210(a5),a0
  1557.     fadd.s    0(a0,d0.l*4),fp0
  1558.     lea    -$4B10(a5),a0
  1559.     fadd.s    0(a0,d0.l*4),fp0
  1560. ;            luminance[i] = CLAMP( sum, 0.0F, 1.0F );
  1561.     fcmp.s    #$.00000000,fp0
  1562.     fboge.b    L854
  1563. L853
  1564.     fmove.s    #$.00000000,fp0
  1565.     bra.b    L858
  1566. L854
  1567.     fcmp.s    #$.3F800000,fp0
  1568.     fbole.b    L856
  1569. L855
  1570.     fmove.s    #$.3F800000,fp0
  1571. L856
  1572. L857
  1573. L858
  1574.     lea    -$7D10(a5),a0
  1575.     fmove.s    fp0,0(a0,d0.l*4)
  1576.     addq.l    #1,d0
  1577. L859
  1578.     cmp.l    d2,d0
  1579.     blt.b    L852
  1580. L860
  1581. ;      switch (type)
  1582.     move.l    d5,d0
  1583.     cmp.l    #$8034,d0
  1584.     beq    L1228
  1585.     bgt.b    L1303
  1586.     cmp.l    #$1404,d0
  1587.     beq    L1100
  1588.     bgt.b    L1304
  1589.     cmp.l    #$1402,d0
  1590.     beq    L1003
  1591.     bgt.b    L1305
  1592.     cmp.l    #$1400,d0
  1593.     beq    L908
  1594.     cmp.l    #$1401,d0
  1595.     beq    L861
  1596.     bra    L1298
  1597. L1305
  1598.     bgt    L954
  1599. L1304
  1600.     cmp.l    #$8032,d0
  1601.     beq    L1198
  1602.     bgt.b    L1306
  1603.     cmp.l    #$1405,d0
  1604.     beq    L1051
  1605.     cmp.l    #$1406,d0
  1606.     beq    L1149
  1607.     bra    L1298
  1608. L1306
  1609.     bgt    L1218
  1610. L1303
  1611.     cmp.l    #$8364,d0
  1612.     beq    L1213
  1613.     bgt.b    L1307
  1614.     cmp.l    #$8362,d0
  1615.     beq    L1203
  1616.     bgt.b    L1308
  1617.     cmp.l    #$8035,d0
  1618.     beq    L1238
  1619.     cmp.l    #$8036,d0
  1620.     beq    L1268
  1621.     bra    L1298
  1622. L1308
  1623.     bgt    L1208
  1624. L1307
  1625.     cmp.l    #$8367,d0
  1626.     beq    L1253
  1627.     bgt.b    L1309
  1628.     cmp.l    #$8365,d0
  1629.     beq    L1223
  1630.     cmp.l    #$8366,d0
  1631.     beq    L1233
  1632.     bra    L1298
  1633. L1309
  1634.     cmp.l    #$8368,d0
  1635.     beq    L1283
  1636.     bra    L1298
  1637. ;         
  1638. L861
  1639. ;               GLubyte *dst = (GLubyte *) gl_pixel_ad
  1640.     clr.l    -(a7)
  1641.     move.l    d4,-(a7)
  1642.     clr.l    -(a7)
  1643.     move.l    d5,-(a7)
  1644.     move.l    d3,-(a7)
  1645.     move.l    $18(a5),-(a7)
  1646.     move.l    d2,-(a7)
  1647.     move.l    a4,-(a7)
  1648.     move.l    a3,a0
  1649.     add.l    #$E644,a0
  1650.     pea    (a0)
  1651.     jsr    _gl_pixel_addr_in_image
  1652.     add.w    #$24,a7
  1653.     move.l    d0,a0
  1654. ;               switch (format)
  1655.     move.l    d3,d0
  1656.     cmp.l    #$1908,d0
  1657.     beq    L890
  1658.     bgt.b    L1310
  1659.     cmp.l    #$1905,d0
  1660.     beq    L870
  1661.     bgt.b    L1311
  1662.     cmp.l    #$1903,d0
  1663.     beq.b    L862
  1664.     cmp.l    #$1904,d0
  1665.     beq    L866
  1666.     bra    L906
  1667. L1311
  1668.     cmp.l    #$1906,d0
  1669.     beq    L874
  1670.     cmp.l    #$1907,d0
  1671.     beq    L886
  1672.     bra    L906
  1673. L1310
  1674.     cmp.l    #$8000,d0
  1675.     beq    L902
  1676.     bgt.b    L1312
  1677.     cmp.l    #$1909,d0
  1678.     beq    L878
  1679.     cmp.l    #$190A,d0
  1680.     beq    L882
  1681.     bra    L906
  1682. L1312
  1683.     cmp.l    #$80E0,d0
  1684.     beq    L894
  1685.     cmp.l    #$80E1,d0
  1686.     beq    L898
  1687.     bra    L906
  1688. ;                  
  1689. L862
  1690. ;                     for (i=0;
  1691.     moveq    #0,d0
  1692.     bra.b    L864
  1693. L863
  1694. ;                        dst[i] = FLOAT_TO_UB
  1695.     lea    -$1910(a5),a1
  1696.     fmove.s    0(a1,d0.l*4),fp0
  1697.     fmul.s    #$.437F0000,fp0
  1698.     fmove.l    fp0,d1
  1699.     move.b    d1,0(a0,d0.l)
  1700.     addq.l    #1,d0
  1701. L864
  1702.     cmp.l    d2,d0
  1703.     blt.b    L863
  1704. L865
  1705. ;                     
  1706.     bra    L907
  1707. L866
  1708. ;                     for (i=0;
  1709.     moveq    #0,d0
  1710.     bra.b    L868
  1711. L867
  1712. ;                        dst[i] = FLOAT_TO_UB
  1713.     lea    -$3210(a5),a1
  1714.     fmove.s    0(a1,d0.l*4),fp0
  1715.     fmul.s    #$.437F0000,fp0
  1716.     fmove.l    fp0,d1
  1717.     move.b    d1,0(a0,d0.l)
  1718.     addq.l    #1,d0
  1719. L868
  1720.     cmp.l    d2,d0
  1721.     blt.b    L867
  1722. L869
  1723. ;                     
  1724.     bra    L907
  1725. L870
  1726. ;                     for (i=0;
  1727.     moveq    #0,d0
  1728.     bra.b    L872
  1729. L871
  1730. ;                        dst[i] = FLOAT_TO_UB
  1731.     lea    -$4B10(a5),a1
  1732.     fmove.s    0(a1,d0.l*4),fp0
  1733.     fmul.s    #$.437F0000,fp0
  1734.     fmove.l    fp0,d1
  1735.     move.b    d1,0(a0,d0.l)
  1736.     addq.l    #1,d0
  1737. L872
  1738.     cmp.l    d2,d0
  1739.     blt.b    L871
  1740. L873
  1741. ;                     
  1742.     bra    L907
  1743. L874
  1744. ;                     for (i=0;
  1745.     moveq    #0,d0
  1746.     bra.b    L876
  1747. L875
  1748. ;                        dst[i] = FLOAT_TO_UB
  1749.     lea    -$6410(a5),a1
  1750.     fmove.s    0(a1,d0.l*4),fp0
  1751.     fmul.s    #$.437F0000,fp0
  1752.     fmove.l    fp0,d1
  1753.     move.b    d1,0(a0,d0.l)
  1754.     addq.l    #1,d0
  1755. L876
  1756.     cmp.l    d2,d0
  1757.     blt.b    L875
  1758. L877
  1759. ;                     
  1760.     bra    L907
  1761. L878
  1762. ;                     for (i=0;
  1763.     moveq    #0,d0
  1764.     bra.b    L880
  1765. L879
  1766. ;                        dst[i] = FLOAT_TO_UB
  1767.     lea    -$7D10(a5),a1
  1768.     fmove.s    0(a1,d0.l*4),fp0
  1769.     fmul.s    #$.437F0000,fp0
  1770.     fmove.l    fp0,d1
  1771.     move.b    d1,0(a0,d0.l)
  1772.     addq.l    #1,d0
  1773. L880
  1774.     cmp.l    d2,d0
  1775.     blt.b    L879
  1776. L881
  1777. ;                     
  1778.     bra    L907
  1779. L882
  1780. ;                     for (i=0;
  1781.     moveq    #0,d0
  1782.     bra.b    L884
  1783. L883
  1784. ;                        dst[i*2+0] = FLOAT_T
  1785.     lea    -$7D10(a5),a1
  1786.     fmove.s    0(a1,d0.l*4),fp0
  1787.     fmul.s    #$.437F0000,fp0
  1788.     fmove.l    fp0,d1
  1789.     move.b    d1,d7
  1790.     move.l    d0,d1
  1791.     moveq    #1,d6
  1792.     asl.l    d6,d1
  1793.     move.b    d7,0(a0,d1.l)
  1794. ;                        dst[i*2+1] = FLOAT_T
  1795.     lea    -$6410(a5),a1
  1796.     fmove.s    0(a1,d0.l*4),fp0
  1797.     fmul.s    #$.437F0000,fp0
  1798.     fmove.l    fp0,d1
  1799.     move.b    d1,d7
  1800.     move.l    d0,d1
  1801.     moveq    #1,d6
  1802.     asl.l    d6,d1
  1803.     lea    1(a0),a1
  1804.     move.b    d7,0(a1,d1.l)
  1805.     addq.l    #1,d0
  1806. L884
  1807.     cmp.l    d2,d0
  1808.     blt.b    L883
  1809. L885
  1810. ;                     
  1811.     bra    L907
  1812. L886
  1813. ;                     for (i=0;
  1814.     moveq    #0,d0
  1815.     bra    L888
  1816. L887
  1817. ;                        dst[i*3+0] = FLOAT_T
  1818.     lea    -$1910(a5),a1
  1819.     fmove.s    0(a1,d0.l*4),fp0
  1820.     fmul.s    #$.437F0000,fp0
  1821.     fmove.l    fp0,d1
  1822.     move.b    d1,d7
  1823.     move.l    d0,d1
  1824.     muls.l    #3,d1
  1825.     move.b    d7,0(a0,d1.l)
  1826. ;                        dst[i*3+1] = FLOAT_T
  1827.     lea    -$3210(a5),a1
  1828.     fmove.s    0(a1,d0.l*4),fp0
  1829.     fmul.s    #$.437F0000,fp0
  1830.     fmove.l    fp0,d1
  1831.     move.b    d1,d7
  1832.     move.l    d0,d1
  1833.     muls.l    #3,d1
  1834.     lea    1(a0),a1
  1835.     move.b    d7,0(a1,d1.l)
  1836. ;                        dst[i*3+2] = FLOAT_T
  1837.     lea    -$4B10(a5),a1
  1838.     fmove.s    0(a1,d0.l*4),fp0
  1839.     fmul.s    #$.437F0000,fp0
  1840.     fmove.l    fp0,d1
  1841.     move.b    d1,d7
  1842.     move.l    d0,d1
  1843.     muls.l    #3,d1
  1844.     lea    2(a0),a1
  1845.     move.b    d7,0(a1,d1.l)
  1846.     addq.l    #1,d0
  1847. L888
  1848.     cmp.l    d2,d0
  1849.     blt    L887
  1850. L889
  1851. ;                     
  1852.     bra    L907
  1853. L890
  1854. ;                     for (i=0;
  1855.     moveq    #0,d0
  1856.     bra    L892
  1857. L891
  1858. ;                        dst[i*4+0] = FLOAT_T
  1859.     lea    -$1910(a5),a1
  1860.     fmove.s    0(a1,d0.l*4),fp0
  1861.     fmul.s    #$.437F0000,fp0
  1862.     fmove.l    fp0,d1
  1863.     move.b    d1,d7
  1864.     move.l    d0,d1
  1865.     moveq    #2,d6
  1866.     asl.l    d6,d1
  1867.     move.b    d7,0(a0,d1.l)
  1868. ;                        dst[i*4+1] = FLOAT_T
  1869.     lea    -$3210(a5),a1
  1870.     fmove.s    0(a1,d0.l*4),fp0
  1871.     fmul.s    #$.437F0000,fp0
  1872.     fmove.l    fp0,d1
  1873.     move.b    d1,d7
  1874.     move.l    d0,d1
  1875.     moveq    #2,d6
  1876.     asl.l    d6,d1
  1877.     lea    1(a0),a1
  1878.     move.b    d7,0(a1,d1.l)
  1879. ;                        dst[i*4+2] = FLOAT_T
  1880.     lea    -$4B10(a5),a1
  1881.     fmove.s    0(a1,d0.l*4),fp0
  1882.     fmul.s    #$.437F0000,fp0
  1883.     fmove.l    fp0,d1
  1884.     move.b    d1,d7
  1885.     move.l    d0,d1
  1886.     moveq    #2,d6
  1887.     asl.l    d6,d1
  1888.     lea    2(a0),a1
  1889.     move.b    d7,0(a1,d1.l)
  1890. ;                        dst[i*4+3] = FLOAT_T
  1891.     lea    -$6410(a5),a1
  1892.     fmove.s    0(a1,d0.l*4),fp0
  1893.     fmul.s    #$.437F0000,fp0
  1894.     fmove.l    fp0,d1
  1895.     move.b    d1,d7
  1896.     move.l    d0,d1
  1897.     moveq    #2,d6
  1898.     asl.l    d6,d1
  1899.     lea    3(a0),a1
  1900.     move.b    d7,0(a1,d1.l)
  1901.     addq.l    #1,d0
  1902. L892
  1903.     cmp.l    d2,d0
  1904.     blt    L891
  1905. L893
  1906. ;                     
  1907.     bra    L907
  1908. L894
  1909. ;                     for (i=0;
  1910.     moveq    #0,d0
  1911.     bra    L896
  1912. L895
  1913. ;                        dst[i*3+0] = FLOAT_T
  1914.     lea    -$4B10(a5),a1
  1915.     fmove.s    0(a1,d0.l*4),fp0
  1916.     fmul.s    #$.437F0000,fp0
  1917.     fmove.l    fp0,d1
  1918.     move.b    d1,d7
  1919.     move.l    d0,d1
  1920.     muls.l    #3,d1
  1921.     move.b    d7,0(a0,d1.l)
  1922. ;                        dst[i*3+1] = FLOAT_T
  1923.     lea    -$3210(a5),a1
  1924.     fmove.s    0(a1,d0.l*4),fp0
  1925.     fmul.s    #$.437F0000,fp0
  1926.     fmove.l    fp0,d1
  1927.     move.b    d1,d7
  1928.     move.l    d0,d1
  1929.     muls.l    #3,d1
  1930.     lea    1(a0),a1
  1931.     move.b    d7,0(a1,d1.l)
  1932. ;                        dst[i*3+2] = FLOAT_T
  1933.     lea    -$1910(a5),a1
  1934.     fmove.s    0(a1,d0.l*4),fp0
  1935.     fmul.s    #$.437F0000,fp0
  1936.     fmove.l    fp0,d1
  1937.     move.b    d1,d7
  1938.     move.l    d0,d1
  1939.     muls.l    #3,d1
  1940.     lea    2(a0),a1
  1941.     move.b    d7,0(a1,d1.l)
  1942.     addq.l    #1,d0
  1943. L896
  1944.     cmp.l    d2,d0
  1945.     blt    L895
  1946. L897
  1947. ;                     
  1948.     bra    L907
  1949. L898
  1950. ;                     for (i=0;
  1951.     moveq    #0,d0
  1952.     bra    L900
  1953. L899
  1954. ;                        dst[i*4+0] = FLOAT_T
  1955.     lea    -$4B10(a5),a1
  1956.     fmove.s    0(a1,d0.l*4),fp0
  1957.     fmul.s    #$.437F0000,fp0
  1958.     fmove.l    fp0,d1
  1959.     move.b    d1,d7
  1960.     move.l    d0,d1
  1961.     moveq    #2,d6
  1962.     asl.l    d6,d1
  1963.     move.b    d7,0(a0,d1.l)
  1964. ;                        dst[i*4+1] = FLOAT_T
  1965.     lea    -$3210(a5),a1
  1966.     fmove.s    0(a1,d0.l*4),fp0
  1967.     fmul.s    #$.437F0000,fp0
  1968.     fmove.l    fp0,d1
  1969.     move.b    d1,d7
  1970.     move.l    d0,d1
  1971.     moveq    #2,d6
  1972.     asl.l    d6,d1
  1973.     lea    1(a0),a1
  1974.     move.b    d7,0(a1,d1.l)
  1975. ;                        dst[i*4+2] = FLOAT_T
  1976.     lea    -$1910(a5),a1
  1977.     fmove.s    0(a1,d0.l*4),fp0
  1978.     fmul.s    #$.437F0000,fp0
  1979.     fmove.l    fp0,d1
  1980.     move.b    d1,d7
  1981.     move.l    d0,d1
  1982.     moveq    #2,d6
  1983.     asl.l    d6,d1
  1984.     lea    2(a0),a1
  1985.     move.b    d7,0(a1,d1.l)
  1986. ;                        dst[i*4+3] = FLOAT_T
  1987.     lea    -$6410(a5),a1
  1988.     fmove.s    0(a1,d0.l*4),fp0
  1989.     fmul.s    #$.437F0000,fp0
  1990.     fmove.l    fp0,d1
  1991.     move.b    d1,d7
  1992.     move.l    d0,d1
  1993.     moveq    #2,d6
  1994.     asl.l    d6,d1
  1995.     lea    3(a0),a1
  1996.     move.b    d7,0(a1,d1.l)
  1997.     addq.l    #1,d0
  1998. L900
  1999.     cmp.l    d2,d0
  2000.     blt    L899
  2001. L901
  2002. ;                     
  2003.     bra    L907
  2004. L902
  2005. ;                     for (i=0;
  2006.     moveq    #0,d0
  2007.     bra    L904
  2008. L903
  2009. ;                        dst[i*4+0] = FLOAT_T
  2010.     lea    -$6410(a5),a1
  2011.     fmove.s    0(a1,d0.l*4),fp0
  2012.     fmul.s    #$.437F0000,fp0
  2013.     fmove.l    fp0,d1
  2014.     move.b    d1,d7
  2015.     move.l    d0,d1
  2016.     moveq    #2,d6
  2017.     asl.l    d6,d1
  2018.     move.b    d7,0(a0,d1.l)
  2019. ;                        dst[i*4+1] = FLOAT_T
  2020.     lea    -$4B10(a5),a1
  2021.     fmove.s    0(a1,d0.l*4),fp0
  2022.     fmul.s    #$.437F0000,fp0
  2023.     fmove.l    fp0,d1
  2024.     move.b    d1,d7
  2025.     move.l    d0,d1
  2026.     moveq    #2,d6
  2027.     asl.l    d6,d1
  2028.     lea    1(a0),a1
  2029.     move.b    d7,0(a1,d1.l)
  2030. ;                        dst[i*4+2] = FLOAT_T
  2031.     lea    -$3210(a5),a1
  2032.     fmove.s    0(a1,d0.l*4),fp0
  2033.     fmul.s    #$.437F0000,fp0
  2034.     fmove.l    fp0,d1
  2035.     move.b    d1,d7
  2036.     move.l    d0,d1
  2037.     moveq    #2,d6
  2038.     asl.l    d6,d1
  2039.     lea    2(a0),a1
  2040.     move.b    d7,0(a1,d1.l)
  2041. ;                        dst[i*4+3] = FLOAT_T
  2042.     lea    -$1910(a5),a1
  2043.     fmove.s    0(a1,d0.l*4),fp0
  2044.     fmul.s    #$.437F0000,fp0
  2045.     fmove.l    fp0,d1
  2046.     move.b    d1,d7
  2047.     move.l    d0,d1
  2048.     moveq    #2,d6
  2049.     asl.l    d6,d1
  2050.     lea    3(a0),a1
  2051.     move.b    d7,0(a1,d1.l)
  2052.     addq.l    #1,d0
  2053. L904
  2054.     cmp.l    d2,d0
  2055.     blt    L903
  2056. L905
  2057. ;                     
  2058.     bra.b    L907
  2059. L906
  2060. ;                     gl_problem(ctx, "bad forma
  2061.     move.l    #L830,-(a7)
  2062.     move.l    a3,-(a7)
  2063.     jsr    _gl_problem
  2064.     addq.w    #$8,a7
  2065. L907
  2066. ;        
  2067.     bra    L1299
  2068. L908
  2069. ;               GLbyte *dst = (GLbyte *) gl_pixel_addr
  2070.     clr.l    -(a7)
  2071.     move.l    d4,-(a7)
  2072.     clr.l    -(a7)
  2073.     move.l    d5,-(a7)
  2074.     move.l    d3,-(a7)
  2075.     move.l    $18(a5),-(a7)
  2076.     move.l    d2,-(a7)
  2077.     move.l    a4,-(a7)
  2078.     move.l    a3,a0
  2079.     add.l    #$E644,a0
  2080.     pea    (a0)
  2081.     jsr    _gl_pixel_addr_in_image
  2082.     add.w    #$24,a7
  2083.     move.l    d0,a0
  2084. ;               switch (format)
  2085.     move.l    d3,d0
  2086.     cmp.l    #$1908,d0
  2087.     beq    L937
  2088.     bgt.b    L1313
  2089.     cmp.l    #$1905,d0
  2090.     beq    L917
  2091.     bgt.b    L1314
  2092.     cmp.l    #$1903,d0
  2093.     beq.b    L909
  2094.     cmp.l    #$1904,d0
  2095.     beq    L913
  2096.     bra    L952
  2097. L1314
  2098.     cmp.l    #$1906,d0
  2099.     beq    L921
  2100.     cmp.l    #$1907,d0
  2101.     beq    L933
  2102.     bra    L952
  2103. L1313
  2104.     cmp.l    #$8000,d0
  2105.     beq    L948
  2106.     bgt.b    L1315
  2107.     cmp.l    #$1909,d0
  2108.     beq    L925
  2109.     cmp.l    #$190A,d0
  2110.     beq    L929
  2111.     bra    L952
  2112. L1315
  2113.     cmp.l    #$80E0,d0
  2114.     beq    L941
  2115.     cmp.l    #$80E1,d0
  2116.     beq    L945
  2117.     bra    L952
  2118. ;                  
  2119. L909
  2120. ;                     for (i=0;
  2121.     moveq    #0,d0
  2122.     bra.b    L911
  2123. L910
  2124. ;                        dst[i] = FLOAT_TO_BY
  2125.     lea    -$1910(a5),a1
  2126.     fmove.s    0(a1,d0.l*4),fp0
  2127.     fmul.s    #$.437F0000,fp0
  2128.     fmove.l    fp0,d1
  2129.     subq.l    #1,d1
  2130.     divsl.l    #2,d1
  2131.     move.b    d1,0(a0,d0.l)
  2132.     addq.l    #1,d0
  2133. L911
  2134.     cmp.l    d2,d0
  2135.     blt.b    L910
  2136. L912
  2137. ;                     
  2138.     bra    L953
  2139. L913
  2140. ;                     for (i=0;
  2141.     moveq    #0,d0
  2142.     bra.b    L915
  2143. L914
  2144. ;                        dst[i] = FLOAT_TO_BY
  2145.     lea    -$3210(a5),a1
  2146.     fmove.s    0(a1,d0.l*4),fp0
  2147.     fmul.s    #$.437F0000,fp0
  2148.     fmove.l    fp0,d1
  2149.     subq.l    #1,d1
  2150.     divsl.l    #2,d1
  2151.     move.b    d1,0(a0,d0.l)
  2152.     addq.l    #1,d0
  2153. L915
  2154.     cmp.l    d2,d0
  2155.     blt.b    L914
  2156. L916
  2157. ;                     
  2158.     bra    L953
  2159. L917
  2160. ;                     for (i=0;
  2161.     moveq    #0,d0
  2162.     bra.b    L919
  2163. L918
  2164. ;                        dst[i] = FLOAT_TO_BY
  2165.     lea    -$4B10(a5),a1
  2166.     fmove.s    0(a1,d0.l*4),fp0
  2167.     fmul.s    #$.437F0000,fp0
  2168.     fmove.l    fp0,d1
  2169.     subq.l    #1,d1
  2170.     divsl.l    #2,d1
  2171.     move.b    d1,0(a0,d0.l)
  2172.     addq.l    #1,d0
  2173. L919
  2174.     cmp.l    d2,d0
  2175.     blt.b    L918
  2176. L920
  2177. ;                     
  2178.     bra    L953
  2179. L921
  2180. ;                     for (i=0;
  2181.     moveq    #0,d0
  2182.     bra.b    L923
  2183. L922
  2184. ;                        dst[i] = FLOAT_TO_BY
  2185.     lea    -$6410(a5),a1
  2186.     fmove.s    0(a1,d0.l*4),fp0
  2187.     fmul.s    #$.437F0000,fp0
  2188.     fmove.l    fp0,d1
  2189.     subq.l    #1,d1
  2190.     divsl.l    #2,d1
  2191.     move.b    d1,0(a0,d0.l)
  2192.     addq.l    #1,d0
  2193. L923
  2194.     cmp.l    d2,d0
  2195.     blt.b    L922
  2196. L924
  2197. ;                     
  2198.     bra    L953
  2199. L925
  2200. ;                     for (i=0;
  2201.     moveq    #0,d0
  2202.     bra.b    L927
  2203. L926
  2204. ;                        dst[i] = FLOAT_TO_BY
  2205.     lea    -$7D10(a5),a1
  2206.     fmove.s    0(a1,d0.l*4),fp0
  2207.     fmul.s    #$.437F0000,fp0
  2208.     fmove.l    fp0,d1
  2209.     subq.l    #1,d1
  2210.     divsl.l    #2,d1
  2211.     move.b    d1,0(a0,d0.l)
  2212.     addq.l    #1,d0
  2213. L927
  2214.     cmp.l    d2,d0
  2215.     blt.b    L926
  2216. L928
  2217. ;                     
  2218.     bra    L953
  2219. L929
  2220. ;                     for (i=0;
  2221.     moveq    #0,d0
  2222.     bra.b    L931
  2223. L930
  2224. ;                        dst[i*2+0] = FLOAT_T
  2225.     lea    -$7D10(a5),a1
  2226.     fmove.s    0(a1,d0.l*4),fp0
  2227.     fmul.s    #$.437F0000,fp0
  2228.     fmove.l    fp0,d1
  2229.     subq.l    #1,d1
  2230.     divsl.l    #2,d1
  2231.     move.b    d1,d7
  2232.     move.l    d0,d1
  2233.     moveq    #1,d6
  2234.     asl.l    d6,d1
  2235.     move.b    d7,0(a0,d1.l)
  2236. ;                        dst[i*2+1] = FLOAT_T
  2237.     lea    -$6410(a5),a1
  2238.     fmove.s    0(a1,d0.l*4),fp0
  2239.     fmul.s    #$.437F0000,fp0
  2240.     fmove.l    fp0,d1
  2241.     subq.l    #1,d1
  2242.     divsl.l    #2,d1
  2243.     move.b    d1,d7
  2244.     move.l    d0,d1
  2245.     moveq    #1,d6
  2246.     asl.l    d6,d1
  2247.     lea    1(a0),a1
  2248.     move.b    d7,0(a1,d1.l)
  2249.     addq.l    #1,d0
  2250. L931
  2251.     cmp.l    d2,d0
  2252.     blt.b    L930
  2253. L932
  2254. ;                     
  2255.     bra    L953
  2256. L933
  2257. ;                     for (i=0;
  2258.     moveq    #0,d0
  2259.     bra    L935
  2260. L934
  2261. ;                        dst[i*3+0] = FLOAT_T
  2262.     lea    -$1910(a5),a1
  2263.     fmove.s    0(a1,d0.l*4),fp0
  2264.     fmul.s    #$.437F0000,fp0
  2265.     fmove.l    fp0,d1
  2266.     subq.l    #1,d1
  2267.     divsl.l    #2,d1
  2268.     move.b    d1,d7
  2269.     move.l    d0,d1
  2270.     muls.l    #3,d1
  2271.     move.b    d7,0(a0,d1.l)
  2272. ;                        dst[i*3+1] = FLOAT_T
  2273.     lea    -$3210(a5),a1
  2274.     fmove.s    0(a1,d0.l*4),fp0
  2275.     fmul.s    #$.437F0000,fp0
  2276.     fmove.l    fp0,d1
  2277.     subq.l    #1,d1
  2278.     divsl.l    #2,d1
  2279.     move.b    d1,d7
  2280.     move.l    d0,d1
  2281.     muls.l    #3,d1
  2282.     lea    1(a0),a1
  2283.     move.b    d7,0(a1,d1.l)
  2284. ;                        dst[i*3+2] = FLOAT_T
  2285.     lea    -$4B10(a5),a1
  2286.     fmove.s    0(a1,d0.l*4),fp0
  2287.     fmul.s    #$.437F0000,fp0
  2288.     fmove.l    fp0,d1
  2289.     subq.l    #1,d1
  2290.     divsl.l    #2,d1
  2291.     move.b    d1,d7
  2292.     move.l    d0,d1
  2293.     muls.l    #3,d1
  2294.     lea    2(a0),a1
  2295.     move.b    d7,0(a1,d1.l)
  2296.     addq.l    #1,d0
  2297. L935
  2298.     cmp.l    d2,d0
  2299.     blt    L934
  2300. L936
  2301. ;                     
  2302.     bra    L953
  2303. L937
  2304. ;                     for (i=0;
  2305.     moveq    #0,d0
  2306.     bra    L939
  2307. L938
  2308. ;                        dst[i*4+0] = FLOAT_T
  2309.     lea    -$1910(a5),a1
  2310.     fmove.s    0(a1,d0.l*4),fp0
  2311.     fmul.s    #$.437F0000,fp0
  2312.     fmove.l    fp0,d1
  2313.     subq.l    #1,d1
  2314.     divsl.l    #2,d1
  2315.     move.b    d1,d7
  2316.     move.l    d0,d1
  2317.     moveq    #2,d6
  2318.     asl.l    d6,d1
  2319.     move.b    d7,0(a0,d1.l)
  2320. ;                        dst[i*4+1] = FLOAT_T
  2321.     lea    -$3210(a5),a1
  2322.     fmove.s    0(a1,d0.l*4),fp0
  2323.     fmul.s    #$.437F0000,fp0
  2324.     fmove.l    fp0,d1
  2325.     subq.l    #1,d1
  2326.     divsl.l    #2,d1
  2327.     move.b    d1,d7
  2328.     move.l    d0,d1
  2329.     moveq    #2,d6
  2330.     asl.l    d6,d1
  2331.     lea    1(a0),a1
  2332.     move.b    d7,0(a1,d1.l)
  2333. ;                        dst[i*4+2] = FLOAT_T
  2334.     lea    -$4B10(a5),a1
  2335.     fmove.s    0(a1,d0.l*4),fp0
  2336.     fmul.s    #$.437F0000,fp0
  2337.     fmove.l    fp0,d1
  2338.     subq.l    #1,d1
  2339.     divsl.l    #2,d1
  2340.     move.b    d1,d7
  2341.     move.l    d0,d1
  2342.     moveq    #2,d6
  2343.     asl.l    d6,d1
  2344.     lea    2(a0),a1
  2345.     move.b    d7,0(a1,d1.l)
  2346. ;                        dst[i*4+3] = FLOAT_T
  2347.     lea    -$6410(a5),a1
  2348.     fmove.s    0(a1,d0.l*4),fp0
  2349.     fmul.s    #$.437F0000,fp0
  2350.     fmove.l    fp0,d1
  2351.     subq.l    #1,d1
  2352.     divsl.l    #2,d1
  2353.     move.b    d1,d7
  2354.     move.l    d0,d1
  2355.     moveq    #2,d6
  2356.     asl.l    d6,d1
  2357.     lea    3(a0),a1
  2358.     move.b    d7,0(a1,d1.l)
  2359.     addq.l    #1,d0
  2360. L939
  2361.     cmp.l    d2,d0
  2362.     blt    L938
  2363. L940
  2364. ;                     
  2365.     bra    L953
  2366. L941
  2367. ;                     for (i=0;
  2368.     moveq    #0,d0
  2369.     bra    L943
  2370. L942
  2371. ;                        dst[i*3+0] = FLOAT_T
  2372.     lea    -$4B10(a5),a1
  2373.     fmove.s    0(a1,d0.l*4),fp0
  2374.     fmul.s    #$.437F0000,fp0
  2375.     fmove.l    fp0,d1
  2376.     subq.l    #1,d1
  2377.     divsl.l    #2,d1
  2378.     move.b    d1,d7
  2379.     move.l    d0,d1
  2380.     muls.l    #3,d1
  2381.     move.b    d7,0(a0,d1.l)
  2382. ;                        dst[i*3+1] = FLOAT_T
  2383.     lea    -$3210(a5),a1
  2384.     fmove.s    0(a1,d0.l*4),fp0
  2385.     fmul.s    #$.437F0000,fp0
  2386.     fmove.l    fp0,d1
  2387.     subq.l    #1,d1
  2388.     divsl.l    #2,d1
  2389.     move.b    d1,d7
  2390.     move.l    d0,d1
  2391.     muls.l    #3,d1
  2392.     lea    1(a0),a1
  2393.     move.b    d7,0(a1,d1.l)
  2394. ;                        dst[i*3+2] = FLOAT_T
  2395.     lea    -$1910(a5),a1
  2396.     fmove.s    0(a1,d0.l*4),fp0
  2397.     fmul.s    #$.437F0000,fp0
  2398.     fmove.l    fp0,d1
  2399.     subq.l    #1,d1
  2400.     divsl.l    #2,d1
  2401.     move.b    d1,d7
  2402.     move.l    d0,d1
  2403.     muls.l    #3,d1
  2404.     lea    2(a0),a1
  2405.     move.b    d7,0(a1,d1.l)
  2406.     addq.l    #1,d0
  2407. L943
  2408.     cmp.l    d2,d0
  2409.     blt    L942
  2410. L944
  2411. ;                     
  2412.     bra    L953
  2413. L945
  2414. ;                     for (i=0;
  2415.     moveq    #0,d0
  2416.     bra    L947
  2417. L946
  2418. ;                        dst[i*4+0] = FLOAT_T
  2419.     lea    -$4B10(a5),a1
  2420.     fmove.s    0(a1,d0.l*4),fp0
  2421.     fmul.s    #$.437F0000,fp0
  2422.     fmove.l    fp0,d1
  2423.     subq.l    #1,d1
  2424.     divsl.l    #2,d1
  2425.     move.b    d1,d7
  2426.     move.l    d0,d1
  2427.     moveq    #2,d6
  2428.     asl.l    d6,d1
  2429.     move.b    d7,0(a0,d1.l)
  2430. ;                        dst[i*4+1] = FLOAT_T
  2431.     lea    -$3210(a5),a1
  2432.     fmove.s    0(a1,d0.l*4),fp0
  2433.     fmul.s    #$.437F0000,fp0
  2434.     fmove.l    fp0,d1
  2435.     subq.l    #1,d1
  2436.     divsl.l    #2,d1
  2437.     move.b    d1,d7
  2438.     move.l    d0,d1
  2439.     moveq    #2,d6
  2440.     asl.l    d6,d1
  2441.     lea    1(a0),a1
  2442.     move.b    d7,0(a1,d1.l)
  2443. ;                        dst[i*4+2] = FLOAT_T
  2444.     lea    -$1910(a5),a1
  2445.     fmove.s    0(a1,d0.l*4),fp0
  2446.     fmul.s    #$.437F0000,fp0
  2447.     fmove.l    fp0,d1
  2448.     subq.l    #1,d1
  2449.     divsl.l    #2,d1
  2450.     move.b    d1,d7
  2451.     move.l    d0,d1
  2452.     moveq    #2,d6
  2453.     asl.l    d6,d1
  2454.     lea    2(a0),a1
  2455.     move.b    d7,0(a1,d1.l)
  2456. ;                        dst[i*4+3] = FLOAT_T
  2457.     lea    -$6410(a5),a1
  2458.     fmove.s    0(a1,d0.l*4),fp0
  2459.     fmul.s    #$.437F0000,fp0
  2460.     fmove.l    fp0,d1
  2461.     subq.l    #1,d1
  2462.     divsl.l    #2,d1
  2463.     move.b    d1,d7
  2464.     move.l    d0,d1
  2465.     moveq    #2,d6
  2466.     asl.l    d6,d1
  2467.     lea    3(a0),a1
  2468.     move.b    d7,0(a1,d1.l)
  2469.     addq.l    #1,d0
  2470. L947
  2471.     cmp.l    d2,d0
  2472.     blt    L946
  2473. L948
  2474. ;                     for (i=0;
  2475.     moveq    #0,d0
  2476.     bra    L950
  2477. L949
  2478. ;                        dst[i*4+0] = FLOAT_T
  2479.     lea    -$6410(a5),a1
  2480.     fmove.s    0(a1,d0.l*4),fp0
  2481.     fmul.s    #$.437F0000,fp0
  2482.     fmove.l    fp0,d1
  2483.     subq.l    #1,d1
  2484.     divsl.l    #2,d1
  2485.     move.b    d1,d7
  2486.     move.l    d0,d1
  2487.     moveq    #2,d6
  2488.     asl.l    d6,d1
  2489.     move.b    d7,0(a0,d1.l)
  2490. ;                        dst[i*4+1] = FLOAT_T
  2491.     lea    -$4B10(a5),a1
  2492.     fmove.s    0(a1,d0.l*4),fp0
  2493.     fmul.s    #$.437F0000,fp0
  2494.     fmove.l    fp0,d1
  2495.     subq.l    #1,d1
  2496.     divsl.l    #2,d1
  2497.     move.b    d1,d7
  2498.     move.l    d0,d1
  2499.     moveq    #2,d6
  2500.     asl.l    d6,d1
  2501.     lea    1(a0),a1
  2502.     move.b    d7,0(a1,d1.l)
  2503. ;                        dst[i*4+2] = FLOAT_T
  2504.     lea    -$3210(a5),a1
  2505.     fmove.s    0(a1,d0.l*4),fp0
  2506.     fmul.s    #$.437F0000,fp0
  2507.     fmove.l    fp0,d1
  2508.     subq.l    #1,d1
  2509.     divsl.l    #2,d1
  2510.     move.b    d1,d7
  2511.     move.l    d0,d1
  2512.     moveq    #2,d6
  2513.     asl.l    d6,d1
  2514.     lea    2(a0),a1
  2515.     move.b    d7,0(a1,d1.l)
  2516. ;                        dst[i*4+3] = FLOAT_T
  2517.     lea    -$1910(a5),a1
  2518.     fmove.s    0(a1,d0.l*4),fp0
  2519.     fmul.s    #$.437F0000,fp0
  2520.     fmove.l    fp0,d1
  2521.     subq.l    #1,d1
  2522.     divsl.l    #2,d1
  2523.     move.b    d1,d7
  2524.     move.l    d0,d1
  2525.     moveq    #2,d6
  2526.     asl.l    d6,d1
  2527.     lea    3(a0),a1
  2528.     move.b    d7,0(a1,d1.l)
  2529.     addq.l    #1,d0
  2530. L950
  2531.     cmp.l    d2,d0
  2532.     blt    L949
  2533. L951
  2534. ;                     
  2535.     bra.b    L953
  2536. L952
  2537. ;                     gl_problem(ctx, "bad forma
  2538.     move.l    #L830,-(a7)
  2539.     move.l    a3,-(a7)
  2540.     jsr    _gl_problem
  2541.     addq.w    #$8,a7
  2542. L953
  2543. ;        
  2544.     bra    L1299
  2545. L954
  2546. ;               GLushort *dst = (GLushort *) gl_pixel_
  2547.     clr.l    -(a7)
  2548.     move.l    d4,-(a7)
  2549.     clr.l    -(a7)
  2550.     move.l    d5,-(a7)
  2551.     move.l    d3,-(a7)
  2552.     move.l    $18(a5),-(a7)
  2553.     move.l    d2,-(a7)
  2554.     move.l    a4,-(a7)
  2555.     move.l    a3,a0
  2556.     add.l    #$E644,a0
  2557.     pea    (a0)
  2558.     jsr    _gl_pixel_addr_in_image
  2559.     add.w    #$24,a7
  2560.     move.l    d0,a2
  2561. ;               switch (format)
  2562.     move.l    d3,d0
  2563.     cmp.l    #$1908,d0
  2564.     beq    L983
  2565.     bgt.b    L1316
  2566.     cmp.l    #$1905,d0
  2567.     beq    L963
  2568.     bgt.b    L1317
  2569.     cmp.l    #$1903,d0
  2570.     beq.b    L955
  2571.     cmp.l    #$1904,d0
  2572.     beq    L959
  2573.     bra    L999
  2574. L1317
  2575.     cmp.l    #$1906,d0
  2576.     beq    L967
  2577.     cmp.l    #$1907,d0
  2578.     beq    L979
  2579.     bra    L999
  2580. L1316
  2581.     cmp.l    #$8000,d0
  2582.     beq    L995
  2583.     bgt.b    L1318
  2584.     cmp.l    #$1909,d0
  2585.     beq    L971
  2586.     cmp.l    #$190A,d0
  2587.     beq    L975
  2588.     bra    L999
  2589. L1318
  2590.     cmp.l    #$80E0,d0
  2591.     beq    L987
  2592.     cmp.l    #$80E1,d0
  2593.     beq    L991
  2594.     bra    L999
  2595. ;                  
  2596. L955
  2597. ;                     for (i=0;
  2598.     moveq    #0,d0
  2599.     bra.b    L957
  2600. L956
  2601. ;                        dst[i] = FLOAT_TO_US
  2602.     lea    -$1910(a5),a0
  2603.     fmove.s    0(a0,d0.l*4),fp0
  2604.     fmul.s    #$.477FFF00,fp0
  2605.     fmove.l    fp0,d1
  2606.     move.w    d1,0(a2,d0.l*2)
  2607.     addq.l    #1,d0
  2608. L957
  2609.     cmp.l    d2,d0
  2610.     blt.b    L956
  2611. L958
  2612. ;                     
  2613.     bra    L1000
  2614. L959
  2615. ;                     for (i=0;
  2616.     moveq    #0,d0
  2617.     bra.b    L961
  2618. L960
  2619. ;                        dst[i] = FLOAT_TO_US
  2620.     lea    -$3210(a5),a0
  2621.     fmove.s    0(a0,d0.l*4),fp0
  2622.     fmul.s    #$.477FFF00,fp0
  2623.     fmove.l    fp0,d1
  2624.     move.w    d1,0(a2,d0.l*2)
  2625.     addq.l    #1,d0
  2626. L961
  2627.     cmp.l    d2,d0
  2628.     blt.b    L960
  2629. L962
  2630. ;                     
  2631.     bra    L1000
  2632. L963
  2633. ;                     for (i=0;
  2634.     moveq    #0,d0
  2635.     bra.b    L965
  2636. L964
  2637. ;                        dst[i] = FLOAT_TO_US
  2638.     lea    -$4B10(a5),a0
  2639.     fmove.s    0(a0,d0.l*4),fp0
  2640.     fmul.s    #$.477FFF00,fp0
  2641.     fmove.l    fp0,d1
  2642.     move.w    d1,0(a2,d0.l*2)
  2643.     addq.l    #1,d0
  2644. L965
  2645.     cmp.l    d2,d0
  2646.     blt.b    L964
  2647. L966
  2648. ;                     
  2649.     bra    L1000
  2650. L967
  2651. ;                     for (i=0;
  2652.     moveq    #0,d0
  2653.     bra.b    L969
  2654. L968
  2655. ;                        dst[i] = FLOAT_TO_US
  2656.     lea    -$6410(a5),a0
  2657.     fmove.s    0(a0,d0.l*4),fp0
  2658.     fmul.s    #$.477FFF00,fp0
  2659.     fmove.l    fp0,d1
  2660.     move.w    d1,0(a2,d0.l*2)
  2661.     addq.l    #1,d0
  2662. L969
  2663.     cmp.l    d2,d0
  2664.     blt.b    L968
  2665. L970
  2666. ;                     
  2667.     bra    L1000
  2668. L971
  2669. ;                     for (i=0;
  2670.     moveq    #0,d0
  2671.     bra.b    L973
  2672. L972
  2673. ;                        dst[i] = FLOAT_TO_US
  2674.     lea    -$7D10(a5),a0
  2675.     fmove.s    0(a0,d0.l*4),fp0
  2676.     fmul.s    #$.477FFF00,fp0
  2677.     fmove.l    fp0,d1
  2678.     move.w    d1,0(a2,d0.l*2)
  2679.     addq.l    #1,d0
  2680. L973
  2681.     cmp.l    d2,d0
  2682.     blt.b    L972
  2683. L974
  2684. ;                     
  2685.     bra    L1000
  2686. L975
  2687. ;                     for (i=0;
  2688.     moveq    #0,d0
  2689.     bra.b    L977
  2690. L976
  2691. ;                        dst[i*2+0] = FLOAT_T
  2692.     lea    -$7D10(a5),a0
  2693.     fmove.s    0(a0,d0.l*4),fp0
  2694.     fmul.s    #$.477FFF00,fp0
  2695.     fmove.l    fp0,d1
  2696.     move.w    d1,d7
  2697.     move.l    d0,d1
  2698.     moveq    #1,d6
  2699.     asl.l    d6,d1
  2700.     move.w    d7,0(a2,d1.l*2)
  2701. ;                        dst[i*2+1] = FLOAT_T
  2702.     lea    -$6410(a5),a0
  2703.     fmove.s    0(a0,d0.l*4),fp0
  2704.     fmul.s    #$.477FFF00,fp0
  2705.     fmove.l    fp0,d1
  2706.     move.w    d1,d7
  2707.     move.l    d0,d1
  2708.     moveq    #1,d6
  2709.     asl.l    d6,d1
  2710.     lea    2(a2),a0
  2711.     move.w    d7,0(a0,d1.l*2)
  2712.     addq.l    #1,d0
  2713. L977
  2714.     cmp.l    d2,d0
  2715.     blt.b    L976
  2716. L978
  2717. ;                     
  2718.     bra    L1000
  2719. L979
  2720. ;                     for (i=0;
  2721.     moveq    #0,d0
  2722.     bra    L981
  2723. L980
  2724. ;                        dst[i*3+0] = FLOAT_T
  2725.     lea    -$1910(a5),a0
  2726.     fmove.s    0(a0,d0.l*4),fp0
  2727.     fmul.s    #$.477FFF00,fp0
  2728.     fmove.l    fp0,d1
  2729.     move.w    d1,d7
  2730.     move.l    d0,d1
  2731.     muls.l    #3,d1
  2732.     move.w    d7,0(a2,d1.l*2)
  2733. ;                        dst[i*3+1] = FLOAT_T
  2734.     lea    -$3210(a5),a0
  2735.     fmove.s    0(a0,d0.l*4),fp0
  2736.     fmul.s    #$.477FFF00,fp0
  2737.     fmove.l    fp0,d1
  2738.     move.w    d1,d7
  2739.     move.l    d0,d1
  2740.     muls.l    #3,d1
  2741.     lea    2(a2),a0
  2742.     move.w    d7,0(a0,d1.l*2)
  2743. ;                        dst[i*3+2] = FLOAT_T
  2744.     lea    -$4B10(a5),a0
  2745.     fmove.s    0(a0,d0.l*4),fp0
  2746.     fmul.s    #$.477FFF00,fp0
  2747.     fmove.l    fp0,d1
  2748.     move.w    d1,d7
  2749.     move.l    d0,d1
  2750.     muls.l    #3,d1
  2751.     lea    4(a2),a0
  2752.     move.w    d7,0(a0,d1.l*2)
  2753.     addq.l    #1,d0
  2754. L981
  2755.     cmp.l    d2,d0
  2756.     blt    L980
  2757. L982
  2758. ;                     
  2759.     bra    L1000
  2760. L983
  2761. ;                     for (i=0;
  2762.     moveq    #0,d0
  2763.     bra    L985
  2764. L984
  2765. ;                        dst[i*4+0] = FLOAT_T
  2766.     lea    -$1910(a5),a0
  2767.     fmove.s    0(a0,d0.l*4),fp0
  2768.     fmul.s    #$.477FFF00,fp0
  2769.     fmove.l    fp0,d1
  2770.     move.w    d1,d7
  2771.     move.l    d0,d1
  2772.     moveq    #2,d6
  2773.     asl.l    d6,d1
  2774.     move.w    d7,0(a2,d1.l*2)
  2775. ;                        dst[i*4+1] = FLOAT_T
  2776.     lea    -$3210(a5),a0
  2777.     fmove.s    0(a0,d0.l*4),fp0
  2778.     fmul.s    #$.477FFF00,fp0
  2779.     fmove.l    fp0,d1
  2780.     move.w    d1,d7
  2781.     move.l    d0,d1
  2782.     moveq    #2,d6
  2783.     asl.l    d6,d1
  2784.     lea    2(a2),a0
  2785.     move.w    d7,0(a0,d1.l*2)
  2786. ;                        dst[i*4+2] = FLOAT_T
  2787.     lea    -$4B10(a5),a0
  2788.     fmove.s    0(a0,d0.l*4),fp0
  2789.     fmul.s    #$.477FFF00,fp0
  2790.     fmove.l    fp0,d1
  2791.     move.w    d1,d7
  2792.     move.l    d0,d1
  2793.     moveq    #2,d6
  2794.     asl.l    d6,d1
  2795.     lea    4(a2),a0
  2796.     move.w    d7,0(a0,d1.l*2)
  2797. ;                        dst[i*4+3] = FLOAT_T
  2798.     lea    -$6410(a5),a0
  2799.     fmove.s    0(a0,d0.l*4),fp0
  2800.     fmul.s    #$.477FFF00,fp0
  2801.     fmove.l    fp0,d1
  2802.     move.w    d1,d7
  2803.     move.l    d0,d1
  2804.     moveq    #2,d6
  2805.     asl.l    d6,d1
  2806.     lea    6(a2),a0
  2807.     move.w    d7,0(a0,d1.l*2)
  2808.     addq.l    #1,d0
  2809. L985
  2810.     cmp.l    d2,d0
  2811.     blt    L984
  2812. L986
  2813. ;                     
  2814.     bra    L1000
  2815. L987
  2816. ;                     for (i=0;
  2817.     moveq    #0,d0
  2818.     bra    L989
  2819. L988
  2820. ;                        dst[i*3+0] = FLOAT_T
  2821.     lea    -$4B10(a5),a0
  2822.     fmove.s    0(a0,d0.l*4),fp0
  2823.     fmul.s    #$.477FFF00,fp0
  2824.     fmove.l    fp0,d1
  2825.     move.w    d1,d7
  2826.     move.l    d0,d1
  2827.     muls.l    #3,d1
  2828.     move.w    d7,0(a2,d1.l*2)
  2829. ;                        dst[i*3+1] = FLOAT_T
  2830.     lea    -$3210(a5),a0
  2831.     fmove.s    0(a0,d0.l*4),fp0
  2832.     fmul.s    #$.477FFF00,fp0
  2833.     fmove.l    fp0,d1
  2834.     move.w    d1,d7
  2835.     move.l    d0,d1
  2836.     muls.l    #3,d1
  2837.     lea    2(a2),a0
  2838.     move.w    d7,0(a0,d1.l*2)
  2839. ;                        dst[i*3+2] = FLOAT_T
  2840.     lea    -$1910(a5),a0
  2841.     fmove.s    0(a0,d0.l*4),fp0
  2842.     fmul.s    #$.477FFF00,fp0
  2843.     fmove.l    fp0,d1
  2844.     move.w    d1,d7
  2845.     move.l    d0,d1
  2846.     muls.l    #3,d1
  2847.     lea    4(a2),a0
  2848.     move.w    d7,0(a0,d1.l*2)
  2849.     addq.l    #1,d0
  2850. L989
  2851.     cmp.l    d2,d0
  2852.     blt    L988
  2853. L990
  2854. ;                     
  2855.     bra    L1000
  2856. L991
  2857. ;                     for (i=0;
  2858.     moveq    #0,d0
  2859.     bra    L993
  2860. L992
  2861. ;                        dst[i*4+0] = FLOAT_T
  2862.     lea    -$4B10(a5),a0
  2863.     fmove.s    0(a0,d0.l*4),fp0
  2864.     fmul.s    #$.477FFF00,fp0
  2865.     fmove.l    fp0,d1
  2866.     move.w    d1,d7
  2867.     move.l    d0,d1
  2868.     moveq    #2,d6
  2869.     asl.l    d6,d1
  2870.     move.w    d7,0(a2,d1.l*2)
  2871. ;                        dst[i*4+1] = FLOAT_T
  2872.     lea    -$3210(a5),a0
  2873.     fmove.s    0(a0,d0.l*4),fp0
  2874.     fmul.s    #$.477FFF00,fp0
  2875.     fmove.l    fp0,d1
  2876.     move.w    d1,d7
  2877.     move.l    d0,d1
  2878.     moveq    #2,d6
  2879.     asl.l    d6,d1
  2880.     lea    2(a2),a0
  2881.     move.w    d7,0(a0,d1.l*2)
  2882. ;                        dst[i*4+2] = FLOAT_T
  2883.     lea    -$1910(a5),a0
  2884.     fmove.s    0(a0,d0.l*4),fp0
  2885.     fmul.s    #$.477FFF00,fp0
  2886.     fmove.l    fp0,d1
  2887.     move.w    d1,d7
  2888.     move.l    d0,d1
  2889.     moveq    #2,d6
  2890.     asl.l    d6,d1
  2891.     lea    4(a2),a0
  2892.     move.w    d7,0(a0,d1.l*2)
  2893. ;                        dst[i*4+3] = FLOAT_T
  2894.     lea    -$6410(a5),a0
  2895.     fmove.s    0(a0,d0.l*4),fp0
  2896.     fmul.s    #$.477FFF00,fp0
  2897.     fmove.l    fp0,d1
  2898.     move.w    d1,d7
  2899.     move.l    d0,d1
  2900.     moveq    #2,d6
  2901.     asl.l    d6,d1
  2902.     lea    6(a2),a0
  2903.     move.w    d7,0(a0,d1.l*2)
  2904.     addq.l    #1,d0
  2905. L993
  2906.     cmp.l    d2,d0
  2907.     blt    L992
  2908. L994
  2909. ;                     
  2910.     bra    L1000
  2911. L995
  2912. ;                     for (i=0;
  2913.     moveq    #0,d0
  2914.     bra    L997
  2915. L996
  2916. ;                        dst[i*4+0] = FLOAT_T
  2917.     lea    -$6410(a5),a0
  2918.     fmove.s    0(a0,d0.l*4),fp0
  2919.     fmul.s    #$.477FFF00,fp0
  2920.     fmove.l    fp0,d1
  2921.     move.w    d1,d7
  2922.     move.l    d0,d1
  2923.     moveq    #2,d6
  2924.     asl.l    d6,d1
  2925.     move.w    d7,0(a2,d1.l*2)
  2926. ;                        dst[i*4+1] = FLOAT_T
  2927.     lea    -$4B10(a5),a0
  2928.     fmove.s    0(a0,d0.l*4),fp0
  2929.     fmul.s    #$.477FFF00,fp0
  2930.     fmove.l    fp0,d1
  2931.     move.w    d1,d7
  2932.     move.l    d0,d1
  2933.     moveq    #2,d6
  2934.     asl.l    d6,d1
  2935.     lea    2(a2),a0
  2936.     move.w    d7,0(a0,d1.l*2)
  2937. ;                        dst[i*4+2] = FLOAT_T
  2938.     lea    -$3210(a5),a0
  2939.     fmove.s    0(a0,d0.l*4),fp0
  2940.     fmul.s    #$.477FFF00,fp0
  2941.     fmove.l    fp0,d1
  2942.     move.w    d1,d7
  2943.     move.l    d0,d1
  2944.     moveq    #2,d6
  2945.     asl.l    d6,d1
  2946.     lea    4(a2),a0
  2947.     move.w    d7,0(a0,d1.l*2)
  2948. ;                        dst[i*4+3] = FLOAT_T
  2949.     lea    -$1910(a5),a0
  2950.     fmove.s    0(a0,d0.l*4),fp0
  2951.     fmul.s    #$.477FFF00,fp0
  2952.     fmove.l    fp0,d1
  2953.     move.w    d1,d7
  2954.     move.l    d0,d1
  2955.     moveq    #2,d6
  2956.     asl.l    d6,d1
  2957.     lea    6(a2),a0
  2958.     move.w    d7,0(a0,d1.l*2)
  2959.     addq.l    #1,d0
  2960. L997
  2961.     cmp.l    d2,d0
  2962.     blt    L996
  2963. L998
  2964. ;                     
  2965.     bra.b    L1000
  2966. L999
  2967. ;                     gl_problem(ctx, "bad forma
  2968.     move.l    #L830,-(a7)
  2969.     move.l    a3,-(a7)
  2970.     jsr    _gl_problem
  2971.     addq.w    #$8,a7
  2972. L1000
  2973. ;               if (ctx->Pack.SwapBytes) 
  2974.     move.l    a3,a0
  2975.     add.l    #$E644,a0
  2976.     tst.b    $18(a0)
  2977.     beq.b    L1002
  2978. L1001
  2979. ;                  gl_swap2( (GLushort *) dst, widt
  2980.     move.l    d2,d0
  2981.     muls.l    -$10(a5),d0
  2982.     move.l    d0,-(a7)
  2983.     move.l    a2,-(a7)
  2984.     jsr    _gl_swap2
  2985.     addq.w    #$8,a7
  2986. L1002
  2987. ;        
  2988.     bra    L1299
  2989. L1003
  2990. ;               GLshort *dst = (GLshort *) gl_pixel_ad
  2991.     clr.l    -(a7)
  2992.     move.l    d4,-(a7)
  2993.     clr.l    -(a7)
  2994.     move.l    d5,-(a7)
  2995.     move.l    d3,-(a7)
  2996.     move.l    $18(a5),-(a7)
  2997.     move.l    d2,-(a7)
  2998.     move.l    a4,-(a7)
  2999.     move.l    a3,a0
  3000.     add.l    #$E644,a0
  3001.     pea    (a0)
  3002.     jsr    _gl_pixel_addr_in_image
  3003.     add.w    #$24,a7
  3004.     move.l    d0,a2
  3005. ;               switch (format)
  3006.     move.l    d3,d0
  3007.     cmp.l    #$1908,d0
  3008.     beq    L1032
  3009.     bgt.b    L1319
  3010.     cmp.l    #$1905,d0
  3011.     beq    L1012
  3012.     bgt.b    L1320
  3013.     cmp.l    #$1903,d0
  3014.     beq.b    L1004
  3015.     cmp.l    #$1904,d0
  3016.     beq    L1008
  3017.     bra    L1047
  3018. L1320
  3019.     cmp.l    #$1906,d0
  3020.     beq    L1016
  3021.     cmp.l    #$1907,d0
  3022.     beq    L1028
  3023.     bra    L1047
  3024. L1319
  3025.     cmp.l    #$8000,d0
  3026.     beq    L1043
  3027.     bgt.b    L1321
  3028.     cmp.l    #$1909,d0
  3029.     beq    L1020
  3030.     cmp.l    #$190A,d0
  3031.     beq    L1024
  3032.     bra    L1047
  3033. L1321
  3034.     cmp.l    #$80E0,d0
  3035.     beq    L1036
  3036.     cmp.l    #$80E1,d0
  3037.     beq    L1040
  3038.     bra    L1047
  3039. ;                  
  3040. L1004
  3041. ;                     for (i=0;
  3042.     moveq    #0,d0
  3043.     bra.b    L1006
  3044. L1005
  3045. ;                        dst[i] = FLOAT_TO_SH
  3046.     lea    -$1910(a5),a0
  3047.     fmove.s    0(a0,d0.l*4),fp0
  3048.     fmul.s    #$.477FFF00,fp0
  3049.     fmove.l    fp0,d1
  3050.     subq.l    #1,d1
  3051.     divsl.l    #2,d1
  3052.     move.w    d1,0(a2,d0.l*2)
  3053.     addq.l    #1,d0
  3054. L1006
  3055.     cmp.l    d2,d0
  3056.     blt.b    L1005
  3057. L1007
  3058. ;                     
  3059.     bra    L1048
  3060. L1008
  3061. ;                     for (i=0;
  3062.     moveq    #0,d0
  3063.     bra.b    L1010
  3064. L1009
  3065. ;                        dst[i] = FLOAT_TO_SH
  3066.     lea    -$3210(a5),a0
  3067.     fmove.s    0(a0,d0.l*4),fp0
  3068.     fmul.s    #$.477FFF00,fp0
  3069.     fmove.l    fp0,d1
  3070.     subq.l    #1,d1
  3071.     divsl.l    #2,d1
  3072.     move.w    d1,0(a2,d0.l*2)
  3073.     addq.l    #1,d0
  3074. L1010
  3075.     cmp.l    d2,d0
  3076.     blt.b    L1009
  3077. L1011
  3078. ;                     
  3079.     bra    L1048
  3080. L1012
  3081. ;                     for (i=0;
  3082.     moveq    #0,d0
  3083.     bra.b    L1014
  3084. L1013
  3085. ;                        dst[i] = FLOAT_TO_SH
  3086.     lea    -$4B10(a5),a0
  3087.     fmove.s    0(a0,d0.l*4),fp0
  3088.     fmul.s    #$.477FFF00,fp0
  3089.     fmove.l    fp0,d1
  3090.     subq.l    #1,d1
  3091.     divsl.l    #2,d1
  3092.     move.w    d1,0(a2,d0.l*2)
  3093.     addq.l    #1,d0
  3094. L1014
  3095.     cmp.l    d2,d0
  3096.     blt.b    L1013
  3097. L1015
  3098. ;                     
  3099.     bra    L1048
  3100. L1016
  3101. ;                     for (i=0;
  3102.     moveq    #0,d0
  3103.     bra.b    L1018
  3104. L1017
  3105. ;                        dst[i] = FLOAT_TO_SH
  3106.     lea    -$6410(a5),a0
  3107.     fmove.s    0(a0,d0.l*4),fp0
  3108.     fmul.s    #$.477FFF00,fp0
  3109.     fmove.l    fp0,d1
  3110.     subq.l    #1,d1
  3111.     divsl.l    #2,d1
  3112.     move.w    d1,0(a2,d0.l*2)
  3113.     addq.l    #1,d0
  3114. L1018
  3115.     cmp.l    d2,d0
  3116.     blt.b    L1017
  3117. L1019
  3118. ;                     
  3119.     bra    L1048
  3120. L1020
  3121. ;                     for (i=0;
  3122.     moveq    #0,d0
  3123.     bra.b    L1022
  3124. L1021
  3125. ;                        dst[i] = FLOAT_TO_SH
  3126.     lea    -$7D10(a5),a0
  3127.     fmove.s    0(a0,d0.l*4),fp0
  3128.     fmul.s    #$.477FFF00,fp0
  3129.     fmove.l    fp0,d1
  3130.     subq.l    #1,d1
  3131.     divsl.l    #2,d1
  3132.     move.w    d1,0(a2,d0.l*2)
  3133.     addq.l    #1,d0
  3134. L1022
  3135.     cmp.l    d2,d0
  3136.     blt.b    L1021
  3137. L1023
  3138. ;                     
  3139.     bra    L1048
  3140. L1024
  3141. ;                     for (i=0;
  3142.     moveq    #0,d0
  3143.     bra    L1026
  3144. L1025
  3145. ;                        dst[i*2+0] = FLOAT_T
  3146.     lea    -$7D10(a5),a0
  3147.     fmove.s    0(a0,d0.l*4),fp0
  3148.     fmul.s    #$.477FFF00,fp0
  3149.     fmove.l    fp0,d1
  3150.     subq.l    #1,d1
  3151.     divsl.l    #2,d1
  3152.     move.w    d1,d7
  3153.     move.l    d0,d1
  3154.     moveq    #1,d6
  3155.     asl.l    d6,d1
  3156.     move.w    d7,0(a2,d1.l*2)
  3157. ;                        dst[i*2+1] = FLOAT_T
  3158.     lea    -$6410(a5),a0
  3159.     fmove.s    0(a0,d0.l*4),fp0
  3160.     fmul.s    #$.477FFF00,fp0
  3161.     fmove.l    fp0,d1
  3162.     subq.l    #1,d1
  3163.     divsl.l    #2,d1
  3164.     move.w    d1,d7
  3165.     move.l    d0,d1
  3166.     moveq    #1,d6
  3167.     asl.l    d6,d1
  3168.     lea    2(a2),a0
  3169.     move.w    d7,0(a0,d1.l*2)
  3170.     addq.l    #1,d0
  3171. L1026
  3172.     cmp.l    d2,d0
  3173.     blt.b    L1025
  3174. L1027
  3175. ;                     
  3176.     bra    L1048
  3177. L1028
  3178. ;                     for (i=0;
  3179.     moveq    #0,d0
  3180.     bra    L1030
  3181. L1029
  3182. ;                        dst[i*3+0] = FLOAT_T
  3183.     lea    -$1910(a5),a0
  3184.     fmove.s    0(a0,d0.l*4),fp0
  3185.     fmul.s    #$.477FFF00,fp0
  3186.     fmove.l    fp0,d1
  3187.     subq.l    #1,d1
  3188.     divsl.l    #2,d1
  3189.     move.w    d1,d7
  3190.     move.l    d0,d1
  3191.     muls.l    #3,d1
  3192.     move.w    d7,0(a2,d1.l*2)
  3193. ;                        dst[i*3+1] = FLOAT_T
  3194.     lea    -$3210(a5),a0
  3195.     fmove.s    0(a0,d0.l*4),fp0
  3196.     fmul.s    #$.477FFF00,fp0
  3197.     fmove.l    fp0,d1
  3198.     subq.l    #1,d1
  3199.     divsl.l    #2,d1
  3200.     move.w    d1,d7
  3201.     move.l    d0,d1
  3202.     muls.l    #3,d1
  3203.     lea    2(a2),a0
  3204.     move.w    d7,0(a0,d1.l*2)
  3205. ;                        dst[i*3+2] = FLOAT_T
  3206.     lea    -$4B10(a5),a0
  3207.     fmove.s    0(a0,d0.l*4),fp0
  3208.     fmul.s    #$.477FFF00,fp0
  3209.     fmove.l    fp0,d1
  3210.     subq.l    #1,d1
  3211.     divsl.l    #2,d1
  3212.     move.w    d1,d7
  3213.     move.l    d0,d1
  3214.     muls.l    #3,d1
  3215.     lea    4(a2),a0
  3216.     move.w    d7,0(a0,d1.l*2)
  3217.     addq.l    #1,d0
  3218. L1030
  3219.     cmp.l    d2,d0
  3220.     blt    L1029
  3221. L1031
  3222. ;                     
  3223.     bra    L1048
  3224. L1032
  3225. ;                     for (i=0;
  3226.     moveq    #0,d0
  3227.     bra    L1034
  3228. L1033
  3229. ;                        dst[i*4+0] = FLOAT_T
  3230.     lea    -$1910(a5),a0
  3231.     fmove.s    0(a0,d0.l*4),fp0
  3232.     fmul.s    #$.477FFF00,fp0
  3233.     fmove.l    fp0,d1
  3234.     subq.l    #1,d1
  3235.     divsl.l    #2,d1
  3236.     move.w    d1,d7
  3237.     move.l    d0,d1
  3238.     moveq    #2,d6
  3239.     asl.l    d6,d1
  3240.     move.w    d7,0(a2,d1.l*2)
  3241. ;                        dst[i*4+1] = FLOAT_T
  3242.     lea    -$3210(a5),a0
  3243.     fmove.s    0(a0,d0.l*4),fp0
  3244.     fmul.s    #$.477FFF00,fp0
  3245.     fmove.l    fp0,d1
  3246.     subq.l    #1,d1
  3247.     divsl.l    #2,d1
  3248.     move.w    d1,d7
  3249.     move.l    d0,d1
  3250.     moveq    #2,d6
  3251.     asl.l    d6,d1
  3252.     lea    2(a2),a0
  3253.     move.w    d7,0(a0,d1.l*2)
  3254. ;                        dst[i*4+2] = FLOAT_T
  3255.     lea    -$4B10(a5),a0
  3256.     fmove.s    0(a0,d0.l*4),fp0
  3257.     fmul.s    #$.477FFF00,fp0
  3258.     fmove.l    fp0,d1
  3259.     subq.l    #1,d1
  3260.     divsl.l    #2,d1
  3261.     move.w    d1,d7
  3262.     move.l    d0,d1
  3263.     moveq    #2,d6
  3264.     asl.l    d6,d1
  3265.     lea    4(a2),a0
  3266.     move.w    d7,0(a0,d1.l*2)
  3267. ;                        dst[i*4+3] = FLOAT_T
  3268.     lea    -$6410(a5),a0
  3269.     fmove.s    0(a0,d0.l*4),fp0
  3270.     fmul.s    #$.477FFF00,fp0
  3271.     fmove.l    fp0,d1
  3272.     subq.l    #1,d1
  3273.     divsl.l    #2,d1
  3274.     move.w    d1,d7
  3275.     move.l    d0,d1
  3276.     moveq    #2,d6
  3277.     asl.l    d6,d1
  3278.     lea    6(a2),a0
  3279.     move.w    d7,0(a0,d1.l*2)
  3280.     addq.l    #1,d0
  3281. L1034
  3282.     cmp.l    d2,d0
  3283.     blt    L1033
  3284. L1035
  3285. ;                     
  3286.     bra    L1048
  3287. L1036
  3288. ;                     for (i=0;
  3289.     moveq    #0,d0
  3290.     bra    L1038
  3291. L1037
  3292. ;                        dst[i*3+0] = FLOAT_T
  3293.     lea    -$4B10(a5),a0
  3294.     fmove.s    0(a0,d0.l*4),fp0
  3295.     fmul.s    #$.477FFF00,fp0
  3296.     fmove.l    fp0,d1
  3297.     subq.l    #1,d1
  3298.     divsl.l    #2,d1
  3299.     move.w    d1,d7
  3300.     move.l    d0,d1
  3301.     muls.l    #3,d1
  3302.     move.w    d7,0(a2,d1.l*2)
  3303. ;                        dst[i*3+1] = FLOAT_T
  3304.     lea    -$3210(a5),a0
  3305.     fmove.s    0(a0,d0.l*4),fp0
  3306.     fmul.s    #$.477FFF00,fp0
  3307.     fmove.l    fp0,d1
  3308.     subq.l    #1,d1
  3309.     divsl.l    #2,d1
  3310.     move.w    d1,d7
  3311.     move.l    d0,d1
  3312.     muls.l    #3,d1
  3313.     lea    2(a2),a0
  3314.     move.w    d7,0(a0,d1.l*2)
  3315. ;                        dst[i*3+2] = FLOAT_T
  3316.     lea    -$1910(a5),a0
  3317.     fmove.s    0(a0,d0.l*4),fp0
  3318.     fmul.s    #$.477FFF00,fp0
  3319.     fmove.l    fp0,d1
  3320.     subq.l    #1,d1
  3321.     divsl.l    #2,d1
  3322.     move.w    d1,d7
  3323.     move.l    d0,d1
  3324.     muls.l    #3,d1
  3325.     lea    4(a2),a0
  3326.     move.w    d7,0(a0,d1.l*2)
  3327.     addq.l    #1,d0
  3328. L1038
  3329.     cmp.l    d2,d0
  3330.     blt    L1037
  3331. L1039
  3332. ;                     
  3333.     bra    L1048
  3334. L1040
  3335. ;                     for (i=0;
  3336.     moveq    #0,d0
  3337.     bra    L1042
  3338. L1041
  3339. ;                        dst[i*4+0] = FLOAT_T
  3340.     lea    -$4B10(a5),a0
  3341.     fmove.s    0(a0,d0.l*4),fp0
  3342.     fmul.s    #$.477FFF00,fp0
  3343.     fmove.l    fp0,d1
  3344.     subq.l    #1,d1
  3345.     divsl.l    #2,d1
  3346.     move.w    d1,d7
  3347.     move.l    d0,d1
  3348.     moveq    #2,d6
  3349.     asl.l    d6,d1
  3350.     move.w    d7,0(a2,d1.l*2)
  3351. ;                        dst[i*4+1] = FLOAT_T
  3352.     lea    -$3210(a5),a0
  3353.     fmove.s    0(a0,d0.l*4),fp0
  3354.     fmul.s    #$.477FFF00,fp0
  3355.     fmove.l    fp0,d1
  3356.     subq.l    #1,d1
  3357.     divsl.l    #2,d1
  3358.     move.w    d1,d7
  3359.     move.l    d0,d1
  3360.     moveq    #2,d6
  3361.     asl.l    d6,d1
  3362.     lea    2(a2),a0
  3363.     move.w    d7,0(a0,d1.l*2)
  3364. ;                        dst[i*4+2] = FLOAT_T
  3365.     lea    -$1910(a5),a0
  3366.     fmove.s    0(a0,d0.l*4),fp0
  3367.     fmul.s    #$.477FFF00,fp0
  3368.     fmove.l    fp0,d1
  3369.     subq.l    #1,d1
  3370.     divsl.l    #2,d1
  3371.     move.w    d1,d7
  3372.     move.l    d0,d1
  3373.     moveq    #2,d6
  3374.     asl.l    d6,d1
  3375.     lea    4(a2),a0
  3376.     move.w    d7,0(a0,d1.l*2)
  3377. ;                        dst[i*4+3] = FLOAT_T
  3378.     lea    -$6410(a5),a0
  3379.     fmove.s    0(a0,d0.l*4),fp0
  3380.     fmul.s    #$.477FFF00,fp0
  3381.     fmove.l    fp0,d1
  3382.     subq.l    #1,d1
  3383.     divsl.l    #2,d1
  3384.     move.w    d1,d7
  3385.     move.l    d0,d1
  3386.     moveq    #2,d6
  3387.     asl.l    d6,d1
  3388.     lea    6(a2),a0
  3389.     move.w    d7,0(a0,d1.l*2)
  3390.     addq.l    #1,d0
  3391. L1042
  3392.     cmp.l    d2,d0
  3393.     blt    L1041
  3394. L1043
  3395. ;                     for (i=0;
  3396.     moveq    #0,d0
  3397.     bra    L1045
  3398. L1044
  3399. ;                        dst[i*4+0] = FLOAT_T
  3400.     lea    -$6410(a5),a0
  3401.     fmove.s    0(a0,d0.l*4),fp0
  3402.     fmul.s    #$.477FFF00,fp0
  3403.     fmove.l    fp0,d1
  3404.     subq.l    #1,d1
  3405.     divsl.l    #2,d1
  3406.     move.w    d1,d7
  3407.     move.l    d0,d1
  3408.     moveq    #2,d6
  3409.     asl.l    d6,d1
  3410.     move.w    d7,0(a2,d1.l*2)
  3411. ;                        dst[i*4+1] = FLOAT_T
  3412.     lea    -$4B10(a5),a0
  3413.     fmove.s    0(a0,d0.l*4),fp0
  3414.     fmul.s    #$.477FFF00,fp0
  3415.     fmove.l    fp0,d1
  3416.     subq.l    #1,d1
  3417.     divsl.l    #2,d1
  3418.     move.w    d1,d7
  3419.     move.l    d0,d1
  3420.     moveq    #2,d6
  3421.     asl.l    d6,d1
  3422.     lea    2(a2),a0
  3423.     move.w    d7,0(a0,d1.l*2)
  3424. ;                        dst[i*4+2] = FLOAT_T
  3425.     lea    -$3210(a5),a0
  3426.     fmove.s    0(a0,d0.l*4),fp0
  3427.     fmul.s    #$.477FFF00,fp0
  3428.     fmove.l    fp0,d1
  3429.     subq.l    #1,d1
  3430.     divsl.l    #2,d1
  3431.     move.w    d1,d7
  3432.     move.l    d0,d1
  3433.     moveq    #2,d6
  3434.     asl.l    d6,d1
  3435.     lea    4(a2),a0
  3436.     move.w    d7,0(a0,d1.l*2)
  3437. ;                        dst[i*4+3] = FLOAT_T
  3438.     lea    -$1910(a5),a0
  3439.     fmove.s    0(a0,d0.l*4),fp0
  3440.     fmul.s    #$.477FFF00,fp0
  3441.     fmove.l    fp0,d1
  3442.     subq.l    #1,d1
  3443.     divsl.l    #2,d1
  3444.     move.w    d1,d7
  3445.     move.l    d0,d1
  3446.     moveq    #2,d6
  3447.     asl.l    d6,d1
  3448.     lea    6(a2),a0
  3449.     move.w    d7,0(a0,d1.l*2)
  3450.     addq.l    #1,d0
  3451. L1045
  3452.     cmp.l    d2,d0
  3453.     blt    L1044
  3454. L1046
  3455. ;                     
  3456.     bra.b    L1048
  3457. L1047
  3458. ;                     gl_problem(ctx, "bad forma
  3459.     move.l    #L830,-(a7)
  3460.     move.l    a3,-(a7)
  3461.     jsr    _gl_problem
  3462.     addq.w    #$8,a7
  3463. L1048
  3464. ;               if (ctx->Pack.SwapBytes) 
  3465.     move.l    a3,a0
  3466.     add.l    #$E644,a0
  3467.     tst.b    $18(a0)
  3468.     beq.b    L1050
  3469. L1049
  3470. ;                  gl_swap2( (GLushort *) dst, widt
  3471.     move.l    d2,d0
  3472.     muls.l    -$10(a5),d0
  3473.     move.l    d0,-(a7)
  3474.     move.l    a2,-(a7)
  3475.     jsr    _gl_swap2
  3476.     addq.w    #$8,a7
  3477. L1050
  3478. ;        
  3479.     bra    L1299
  3480. L1051
  3481. ;               GLuint *dst = (GLuint *) gl_pixel_addr
  3482.     clr.l    -(a7)
  3483.     move.l    d4,-(a7)
  3484.     clr.l    -(a7)
  3485.     move.l    d5,-(a7)
  3486.     move.l    d3,-(a7)
  3487.     move.l    $18(a5),-(a7)
  3488.     move.l    d2,-(a7)
  3489.     move.l    a4,-(a7)
  3490.     move.l    a3,a0
  3491.     add.l    #$E644,a0
  3492.     pea    (a0)
  3493.     jsr    _gl_pixel_addr_in_image
  3494.     add.w    #$24,a7
  3495.     move.l    d0,a2
  3496. ;               switch (format)
  3497.     move.l    d3,d0
  3498.     cmp.l    #$1908,d0
  3499.     beq    L1080
  3500.     bgt.b    L1322
  3501.     cmp.l    #$1905,d0
  3502.     beq    L1060
  3503.     bgt.b    L1323
  3504.     cmp.l    #$1903,d0
  3505.     beq    L1052
  3506.     cmp.l    #$1904,d0
  3507.     beq    L1056
  3508.     bra    L1096
  3509. L1323
  3510.     cmp.l    #$1906,d0
  3511.     beq    L1064
  3512.     cmp.l    #$1907,d0
  3513.     beq    L1076
  3514.     bra    L1096
  3515. L1322
  3516.     cmp.l    #$8000,d0
  3517.     beq    L1092
  3518.     bgt.b    L1324
  3519.     cmp.l    #$1909,d0
  3520.     beq    L1068
  3521.     cmp.l    #$190A,d0
  3522.     beq    L1072
  3523.     bra    L1096
  3524. L1324
  3525.     cmp.l    #$80E0,d0
  3526.     beq    L1084
  3527.     cmp.l    #$80E1,d0
  3528.     beq    L1088
  3529.     bra    L1096
  3530. ;                  
  3531. L1052
  3532. ;                     for (i=0;
  3533.     moveq    #0,d0
  3534.     bra.b    L1054
  3535. L1053
  3536. ;                        dst[i] = FLOAT_TO_UI
  3537.     lea    -$1910(a5),a0
  3538.     fmove.s    0(a0,d0.l*4),fp0
  3539.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3540.     fmove.l    fp0,d1
  3541.     move.l    d1,0(a2,d0.l*4)
  3542.     addq.l    #1,d0
  3543. L1054
  3544.     cmp.l    d2,d0
  3545.     blt.b    L1053
  3546. L1055
  3547. ;                     
  3548.     bra    L1097
  3549. L1056
  3550. ;                     for (i=0;
  3551.     moveq    #0,d0
  3552.     bra.b    L1058
  3553. L1057
  3554. ;                        dst[i] = FLOAT_TO_UI
  3555.     lea    -$3210(a5),a0
  3556.     fmove.s    0(a0,d0.l*4),fp0
  3557.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3558.     fmove.l    fp0,d1
  3559.     move.l    d1,0(a2,d0.l*4)
  3560.     addq.l    #1,d0
  3561. L1058
  3562.     cmp.l    d2,d0
  3563.     blt.b    L1057
  3564. L1059
  3565. ;                     
  3566.     bra    L1097
  3567. L1060
  3568. ;                     for (i=0;
  3569.     moveq    #0,d0
  3570.     bra.b    L1062
  3571. L1061
  3572. ;                        dst[i] = FLOAT_TO_UI
  3573.     lea    -$4B10(a5),a0
  3574.     fmove.s    0(a0,d0.l*4),fp0
  3575.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3576.     fmove.l    fp0,d1
  3577.     move.l    d1,0(a2,d0.l*4)
  3578.     addq.l    #1,d0
  3579. L1062
  3580.     cmp.l    d2,d0
  3581.     blt.b    L1061
  3582. L1063
  3583. ;                     
  3584.     bra    L1097
  3585. L1064
  3586. ;                     for (i=0;
  3587.     moveq    #0,d0
  3588.     bra.b    L1066
  3589. L1065
  3590. ;                        dst[i] = FLOAT_TO_UI
  3591.     lea    -$6410(a5),a0
  3592.     fmove.s    0(a0,d0.l*4),fp0
  3593.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3594.     fmove.l    fp0,d1
  3595.     move.l    d1,0(a2,d0.l*4)
  3596.     addq.l    #1,d0
  3597. L1066
  3598.     cmp.l    d2,d0
  3599.     blt.b    L1065
  3600. L1067
  3601. ;                     
  3602.     bra    L1097
  3603. L1068
  3604. ;                     for (i=0;
  3605.     moveq    #0,d0
  3606.     bra.b    L1070
  3607. L1069
  3608. ;                        dst[i] = FLOAT_TO_UI
  3609.     lea    -$7D10(a5),a0
  3610.     fmove.s    0(a0,d0.l*4),fp0
  3611.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3612.     fmove.l    fp0,d1
  3613.     move.l    d1,0(a2,d0.l*4)
  3614.     addq.l    #1,d0
  3615. L1070
  3616.     cmp.l    d2,d0
  3617.     blt.b    L1069
  3618. L1071
  3619. ;                     
  3620.     bra    L1097
  3621. L1072
  3622. ;                     for (i=0;
  3623.     moveq    #0,d0
  3624.     bra    L1074
  3625. L1073
  3626. ;                        dst[i*2+0] = FLOAT_T
  3627.     lea    -$7D10(a5),a0
  3628.     fmove.s    0(a0,d0.l*4),fp0
  3629.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3630.     fmove.l    fp0,d1
  3631.     move.l    d1,d7
  3632.     move.l    d0,d1
  3633.     moveq    #1,d6
  3634.     asl.l    d6,d1
  3635.     move.l    d7,0(a2,d1.l*4)
  3636. ;                        dst[i*2+1] = FLOAT_T
  3637.     lea    -$6410(a5),a0
  3638.     fmove.s    0(a0,d0.l*4),fp0
  3639.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3640.     fmove.l    fp0,d1
  3641.     move.l    d1,d7
  3642.     move.l    d0,d1
  3643.     moveq    #1,d6
  3644.     asl.l    d6,d1
  3645.     lea    4(a2),a0
  3646.     move.l    d7,0(a0,d1.l*4)
  3647.     addq.l    #1,d0
  3648. L1074
  3649.     cmp.l    d2,d0
  3650.     blt.b    L1073
  3651. L1075
  3652. ;                     
  3653.     bra    L1097
  3654. L1076
  3655. ;                     for (i=0;
  3656.     moveq    #0,d0
  3657.     bra    L1078
  3658. L1077
  3659. ;                        dst[i*3+0] = FLOAT_T
  3660.     lea    -$1910(a5),a0
  3661.     fmove.s    0(a0,d0.l*4),fp0
  3662.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3663.     fmove.l    fp0,d1
  3664.     move.l    d1,d7
  3665.     move.l    d0,d1
  3666.     muls.l    #3,d1
  3667.     move.l    d7,0(a2,d1.l*4)
  3668. ;                        dst[i*3+1] = FLOAT_T
  3669.     lea    -$3210(a5),a0
  3670.     fmove.s    0(a0,d0.l*4),fp0
  3671.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3672.     fmove.l    fp0,d1
  3673.     move.l    d1,d7
  3674.     move.l    d0,d1
  3675.     muls.l    #3,d1
  3676.     lea    4(a2),a0
  3677.     move.l    d7,0(a0,d1.l*4)
  3678. ;                        dst[i*3+2] = FLOAT_T
  3679.     lea    -$4B10(a5),a0
  3680.     fmove.s    0(a0,d0.l*4),fp0
  3681.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3682.     fmove.l    fp0,d1
  3683.     move.l    d1,d7
  3684.     move.l    d0,d1
  3685.     muls.l    #3,d1
  3686.     lea    $8(a2),a0
  3687.     move.l    d7,0(a0,d1.l*4)
  3688.     addq.l    #1,d0
  3689. L1078
  3690.     cmp.l    d2,d0
  3691.     blt    L1077
  3692. L1079
  3693. ;                     
  3694.     bra    L1097
  3695. L1080
  3696. ;                     for (i=0;
  3697.     moveq    #0,d0
  3698.     bra    L1082
  3699. L1081
  3700. ;                        dst[i*4+0] = FLOAT_T
  3701.     lea    -$1910(a5),a0
  3702.     fmove.s    0(a0,d0.l*4),fp0
  3703.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3704.     fmove.l    fp0,d1
  3705.     move.l    d1,d7
  3706.     move.l    d0,d1
  3707.     moveq    #2,d6
  3708.     asl.l    d6,d1
  3709.     move.l    d7,0(a2,d1.l*4)
  3710. ;                        dst[i*4+1] = FLOAT_T
  3711.     lea    -$3210(a5),a0
  3712.     fmove.s    0(a0,d0.l*4),fp0
  3713.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3714.     fmove.l    fp0,d1
  3715.     move.l    d1,d7
  3716.     move.l    d0,d1
  3717.     moveq    #2,d6
  3718.     asl.l    d6,d1
  3719.     lea    4(a2),a0
  3720.     move.l    d7,0(a0,d1.l*4)
  3721. ;                        dst[i*4+2] = FLOAT_T
  3722.     lea    -$4B10(a5),a0
  3723.     fmove.s    0(a0,d0.l*4),fp0
  3724.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3725.     fmove.l    fp0,d1
  3726.     move.l    d1,d7
  3727.     move.l    d0,d1
  3728.     moveq    #2,d6
  3729.     asl.l    d6,d1
  3730.     lea    $8(a2),a0
  3731.     move.l    d7,0(a0,d1.l*4)
  3732. ;                        dst[i*4+3] = FLOAT_T
  3733.     lea    -$6410(a5),a0
  3734.     fmove.s    0(a0,d0.l*4),fp0
  3735.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3736.     fmove.l    fp0,d1
  3737.     move.l    d1,d7
  3738.     move.l    d0,d1
  3739.     moveq    #2,d6
  3740.     asl.l    d6,d1
  3741.     lea    $C(a2),a0
  3742.     move.l    d7,0(a0,d1.l*4)
  3743.     addq.l    #1,d0
  3744. L1082
  3745.     cmp.l    d2,d0
  3746.     blt    L1081
  3747. L1083
  3748. ;                     
  3749.     bra    L1097
  3750. L1084
  3751. ;                     for (i=0;
  3752.     moveq    #0,d0
  3753.     bra    L1086
  3754. L1085
  3755. ;                        dst[i*3+0] = FLOAT_T
  3756.     lea    -$4B10(a5),a0
  3757.     fmove.s    0(a0,d0.l*4),fp0
  3758.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3759.     fmove.l    fp0,d1
  3760.     move.l    d1,d7
  3761.     move.l    d0,d1
  3762.     muls.l    #3,d1
  3763.     move.l    d7,0(a2,d1.l*4)
  3764. ;                        dst[i*3+1] = FLOAT_T
  3765.     lea    -$3210(a5),a0
  3766.     fmove.s    0(a0,d0.l*4),fp0
  3767.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3768.     fmove.l    fp0,d1
  3769.     move.l    d1,d7
  3770.     move.l    d0,d1
  3771.     muls.l    #3,d1
  3772.     lea    4(a2),a0
  3773.     move.l    d7,0(a0,d1.l*4)
  3774. ;                        dst[i*3+2] = FLOAT_T
  3775.     lea    -$1910(a5),a0
  3776.     fmove.s    0(a0,d0.l*4),fp0
  3777.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3778.     fmove.l    fp0,d1
  3779.     move.l    d1,d7
  3780.     move.l    d0,d1
  3781.     muls.l    #3,d1
  3782.     lea    $8(a2),a0
  3783.     move.l    d7,0(a0,d1.l*4)
  3784.     addq.l    #1,d0
  3785. L1086
  3786.     cmp.l    d2,d0
  3787.     blt    L1085
  3788. L1087
  3789. ;                     
  3790.     bra    L1097
  3791. L1088
  3792. ;                     for (i=0;
  3793.     moveq    #0,d0
  3794.     bra    L1090
  3795. L1089
  3796. ;                        dst[i*4+0] = FLOAT_T
  3797.     lea    -$4B10(a5),a0
  3798.     fmove.s    0(a0,d0.l*4),fp0
  3799.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3800.     fmove.l    fp0,d1
  3801.     move.l    d1,d7
  3802.     move.l    d0,d1
  3803.     moveq    #2,d6
  3804.     asl.l    d6,d1
  3805.     move.l    d7,0(a2,d1.l*4)
  3806. ;                        dst[i*4+1] = FLOAT_T
  3807.     lea    -$3210(a5),a0
  3808.     fmove.s    0(a0,d0.l*4),fp0
  3809.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3810.     fmove.l    fp0,d1
  3811.     move.l    d1,d7
  3812.     move.l    d0,d1
  3813.     moveq    #2,d6
  3814.     asl.l    d6,d1
  3815.     lea    4(a2),a0
  3816.     move.l    d7,0(a0,d1.l*4)
  3817. ;                        dst[i*4+2] = FLOAT_T
  3818.     lea    -$1910(a5),a0
  3819.     fmove.s    0(a0,d0.l*4),fp0
  3820.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3821.     fmove.l    fp0,d1
  3822.     move.l    d1,d7
  3823.     move.l    d0,d1
  3824.     moveq    #2,d6
  3825.     asl.l    d6,d1
  3826.     lea    $8(a2),a0
  3827.     move.l    d7,0(a0,d1.l*4)
  3828. ;                        dst[i*4+3] = FLOAT_T
  3829.     lea    -$6410(a5),a0
  3830.     fmove.s    0(a0,d0.l*4),fp0
  3831.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3832.     fmove.l    fp0,d1
  3833.     move.l    d1,d7
  3834.     move.l    d0,d1
  3835.     moveq    #2,d6
  3836.     asl.l    d6,d1
  3837.     lea    $C(a2),a0
  3838.     move.l    d7,0(a0,d1.l*4)
  3839.     addq.l    #1,d0
  3840. L1090
  3841.     cmp.l    d2,d0
  3842.     blt    L1089
  3843. L1091
  3844. ;                     
  3845.     bra    L1097
  3846. L1092
  3847. ;                     for (i=0;
  3848.     moveq    #0,d0
  3849.     bra    L1094
  3850. L1093
  3851. ;                        dst[i*4+0] = FLOAT_T
  3852.     lea    -$6410(a5),a0
  3853.     fmove.s    0(a0,d0.l*4),fp0
  3854.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3855.     fmove.l    fp0,d1
  3856.     move.l    d1,d7
  3857.     move.l    d0,d1
  3858.     moveq    #2,d6
  3859.     asl.l    d6,d1
  3860.     move.l    d7,0(a2,d1.l*4)
  3861. ;                        dst[i*4+1] = FLOAT_T
  3862.     lea    -$4B10(a5),a0
  3863.     fmove.s    0(a0,d0.l*4),fp0
  3864.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3865.     fmove.l    fp0,d1
  3866.     move.l    d1,d7
  3867.     move.l    d0,d1
  3868.     moveq    #2,d6
  3869.     asl.l    d6,d1
  3870.     lea    4(a2),a0
  3871.     move.l    d7,0(a0,d1.l*4)
  3872. ;                        dst[i*4+2] = FLOAT_T
  3873.     lea    -$3210(a5),a0
  3874.     fmove.s    0(a0,d0.l*4),fp0
  3875.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3876.     fmove.l    fp0,d1
  3877.     move.l    d1,d7
  3878.     move.l    d0,d1
  3879.     moveq    #2,d6
  3880.     asl.l    d6,d1
  3881.     lea    $8(a2),a0
  3882.     move.l    d7,0(a0,d1.l*4)
  3883. ;                        dst[i*4+3] = FLOAT_T
  3884.     lea    -$1910(a5),a0
  3885.     fmove.s    0(a0,d0.l*4),fp0
  3886.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  3887.     fmove.l    fp0,d1
  3888.     move.l    d1,d7
  3889.     move.l    d0,d1
  3890.     moveq    #2,d6
  3891.     asl.l    d6,d1
  3892.     lea    $C(a2),a0
  3893.     move.l    d7,0(a0,d1.l*4)
  3894.     addq.l    #1,d0
  3895. L1094
  3896.     cmp.l    d2,d0
  3897.     blt    L1093
  3898. L1095
  3899. ;                     
  3900.     bra.b    L1097
  3901. L1096
  3902. ;                     gl_problem(ctx, "bad forma
  3903.     move.l    #L830,-(a7)
  3904.     move.l    a3,-(a7)
  3905.     jsr    _gl_problem
  3906.     addq.w    #$8,a7
  3907. L1097
  3908. ;               if (ctx->Pack.SwapBytes) 
  3909.     move.l    a3,a0
  3910.     add.l    #$E644,a0
  3911.     tst.b    $18(a0)
  3912.     beq.b    L1099
  3913. L1098
  3914. ;                  gl_swap4( (GLuint *) dst, width*
  3915.     move.l    d2,d0
  3916.     muls.l    -$10(a5),d0
  3917.     move.l    d0,-(a7)
  3918.     move.l    a2,-(a7)
  3919.     jsr    _gl_swap4
  3920.     addq.w    #$8,a7
  3921. L1099
  3922. ;        
  3923.     bra    L1299
  3924. L1100
  3925. ;               GLint *dst = (GLint *) gl_pixel_addr_i
  3926.     clr.l    -(a7)
  3927.     move.l    d4,-(a7)
  3928.     clr.l    -(a7)
  3929.     move.l    d5,-(a7)
  3930.     move.l    d3,-(a7)
  3931.     move.l    $18(a5),-(a7)
  3932.     move.l    d2,-(a7)
  3933.     move.l    a4,-(a7)
  3934.     move.l    a3,a0
  3935.     add.l    #$E644,a0
  3936.     pea    (a0)
  3937.     jsr    _gl_pixel_addr_in_image
  3938.     add.w    #$24,a7
  3939.     move.l    d0,a2
  3940. ;               switch (format)
  3941.     move.l    d3,d0
  3942.     cmp.l    #$1908,d0
  3943.     beq    L1129
  3944.     bgt.b    L1325
  3945.     cmp.l    #$1905,d0
  3946.     beq    L1109
  3947.     bgt.b    L1326
  3948.     cmp.l    #$1903,d0
  3949.     beq    L1101
  3950.     cmp.l    #$1904,d0
  3951.     beq    L1105
  3952.     bra    L1145
  3953. L1326
  3954.     cmp.l    #$1906,d0
  3955.     beq    L1113
  3956.     cmp.l    #$1907,d0
  3957.     beq    L1125
  3958.     bra    L1145
  3959. L1325
  3960.     cmp.l    #$8000,d0
  3961.     beq    L1141
  3962.     bgt.b    L1327
  3963.     cmp.l    #$1909,d0
  3964.     beq    L1117
  3965.     cmp.l    #$190A,d0
  3966.     beq    L1121
  3967.     bra    L1145
  3968. L1327
  3969.     cmp.l    #$80E0,d0
  3970.     beq    L1133
  3971.     cmp.l    #$80E1,d0
  3972.     beq    L1137
  3973.     bra    L1145
  3974. ;                  
  3975. L1101
  3976. ;                     for (i=0;
  3977.     moveq    #0,d0
  3978.     bra.b    L1103
  3979. L1102
  3980. ;                        dst[i] = FLOAT_TO_IN
  3981.     lea    -$1910(a5),a0
  3982.     fmove.s    0(a0,d0.l*4),fp0
  3983.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  3984.     fmove.l    fp0,d1
  3985.     move.l    d1,0(a2,d0.l*4)
  3986.     addq.l    #1,d0
  3987. L1103
  3988.     cmp.l    d2,d0
  3989.     blt.b    L1102
  3990. L1104
  3991. ;                     
  3992.     bra    L1146
  3993. L1105
  3994. ;                     for (i=0;
  3995.     moveq    #0,d0
  3996.     bra.b    L1107
  3997. L1106
  3998. ;                        dst[i] = FLOAT_TO_IN
  3999.     lea    -$3210(a5),a0
  4000.     fmove.s    0(a0,d0.l*4),fp0
  4001.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4002.     fmove.l    fp0,d1
  4003.     move.l    d1,0(a2,d0.l*4)
  4004.     addq.l    #1,d0
  4005. L1107
  4006.     cmp.l    d2,d0
  4007.     blt.b    L1106
  4008. L1108
  4009. ;                     
  4010.     bra    L1146
  4011. L1109
  4012. ;                     for (i=0;
  4013.     moveq    #0,d0
  4014.     bra.b    L1111
  4015. L1110
  4016. ;                        dst[i] = FLOAT_TO_IN
  4017.     lea    -$4B10(a5),a0
  4018.     fmove.s    0(a0,d0.l*4),fp0
  4019.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4020.     fmove.l    fp0,d1
  4021.     move.l    d1,0(a2,d0.l*4)
  4022.     addq.l    #1,d0
  4023. L1111
  4024.     cmp.l    d2,d0
  4025.     blt.b    L1110
  4026. L1112
  4027. ;                     
  4028.     bra    L1146
  4029. L1113
  4030. ;                     for (i=0;
  4031.     moveq    #0,d0
  4032.     bra.b    L1115
  4033. L1114
  4034. ;                        dst[i] = FLOAT_TO_IN
  4035.     lea    -$6410(a5),a0
  4036.     fmove.s    0(a0,d0.l*4),fp0
  4037.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4038.     fmove.l    fp0,d1
  4039.     move.l    d1,0(a2,d0.l*4)
  4040.     addq.l    #1,d0
  4041. L1115
  4042.     cmp.l    d2,d0
  4043.     blt.b    L1114
  4044. L1116
  4045. ;                     
  4046.     bra    L1146
  4047. L1117
  4048. ;                     for (i=0;
  4049.     moveq    #0,d0
  4050.     bra.b    L1119
  4051. L1118
  4052. ;                        dst[i] = FLOAT_TO_IN
  4053.     lea    -$7D10(a5),a0
  4054.     fmove.s    0(a0,d0.l*4),fp0
  4055.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4056.     fmove.l    fp0,d1
  4057.     move.l    d1,0(a2,d0.l*4)
  4058.     addq.l    #1,d0
  4059. L1119
  4060.     cmp.l    d2,d0
  4061.     blt.b    L1118
  4062. L1120
  4063. ;                     
  4064.     bra    L1146
  4065. L1121
  4066. ;                     for (i=0;
  4067.     moveq    #0,d0
  4068.     bra    L1123
  4069. L1122
  4070. ;                        dst[i*2+0] = FLOAT_T
  4071.     lea    -$7D10(a5),a0
  4072.     fmove.s    0(a0,d0.l*4),fp0
  4073.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4074.     fmove.l    fp0,d1
  4075.     move.l    d1,d7
  4076.     move.l    d0,d1
  4077.     moveq    #1,d6
  4078.     asl.l    d6,d1
  4079.     move.l    d7,0(a2,d1.l*4)
  4080. ;                        dst[i*2+1] = FLOAT_T
  4081.     lea    -$6410(a5),a0
  4082.     fmove.s    0(a0,d0.l*4),fp0
  4083.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4084.     fmove.l    fp0,d1
  4085.     move.l    d1,d7
  4086.     move.l    d0,d1
  4087.     moveq    #1,d6
  4088.     asl.l    d6,d1
  4089.     lea    4(a2),a0
  4090.     move.l    d7,0(a0,d1.l*4)
  4091.     addq.l    #1,d0
  4092. L1123
  4093.     cmp.l    d2,d0
  4094.     blt.b    L1122
  4095. L1124
  4096. ;                     
  4097.     bra    L1146
  4098. L1125
  4099. ;                     for (i=0;
  4100.     moveq    #0,d0
  4101.     bra    L1127
  4102. L1126
  4103. ;                        dst[i*3+0] = FLOAT_T
  4104.     lea    -$1910(a5),a0
  4105.     fmove.s    0(a0,d0.l*4),fp0
  4106.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4107.     fmove.l    fp0,d1
  4108.     move.l    d1,d7
  4109.     move.l    d0,d1
  4110.     muls.l    #3,d1
  4111.     move.l    d7,0(a2,d1.l*4)
  4112. ;                        dst[i*3+1] = FLOAT_T
  4113.     lea    -$3210(a5),a0
  4114.     fmove.s    0(a0,d0.l*4),fp0
  4115.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4116.     fmove.l    fp0,d1
  4117.     move.l    d1,d7
  4118.     move.l    d0,d1
  4119.     muls.l    #3,d1
  4120.     lea    4(a2),a0
  4121.     move.l    d7,0(a0,d1.l*4)
  4122. ;                        dst[i*3+2] = FLOAT_T
  4123.     lea    -$4B10(a5),a0
  4124.     fmove.s    0(a0,d0.l*4),fp0
  4125.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4126.     fmove.l    fp0,d1
  4127.     move.l    d1,d7
  4128.     move.l    d0,d1
  4129.     muls.l    #3,d1
  4130.     lea    $8(a2),a0
  4131.     move.l    d7,0(a0,d1.l*4)
  4132.     addq.l    #1,d0
  4133. L1127
  4134.     cmp.l    d2,d0
  4135.     blt    L1126
  4136. L1128
  4137. ;                     
  4138.     bra    L1146
  4139. L1129
  4140. ;                     for (i=0;
  4141.     moveq    #0,d0
  4142.     bra    L1131
  4143. L1130
  4144. ;                        dst[i*4+0] = FLOAT_T
  4145.     lea    -$1910(a5),a0
  4146.     fmove.s    0(a0,d0.l*4),fp0
  4147.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4148.     fmove.l    fp0,d1
  4149.     move.l    d1,d7
  4150.     move.l    d0,d1
  4151.     moveq    #2,d6
  4152.     asl.l    d6,d1
  4153.     move.l    d7,0(a2,d1.l*4)
  4154. ;                        dst[i*4+1] = FLOAT_T
  4155.     lea    -$3210(a5),a0
  4156.     fmove.s    0(a0,d0.l*4),fp0
  4157.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4158.     fmove.l    fp0,d1
  4159.     move.l    d1,d7
  4160.     move.l    d0,d1
  4161.     moveq    #2,d6
  4162.     asl.l    d6,d1
  4163.     lea    4(a2),a0
  4164.     move.l    d7,0(a0,d1.l*4)
  4165. ;                        dst[i*4+2] = FLOAT_T
  4166.     lea    -$4B10(a5),a0
  4167.     fmove.s    0(a0,d0.l*4),fp0
  4168.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4169.     fmove.l    fp0,d1
  4170.     move.l    d1,d7
  4171.     move.l    d0,d1
  4172.     moveq    #2,d6
  4173.     asl.l    d6,d1
  4174.     lea    $8(a2),a0
  4175.     move.l    d7,0(a0,d1.l*4)
  4176. ;                        dst[i*4+3] = FLOAT_T
  4177.     lea    -$6410(a5),a0
  4178.     fmove.s    0(a0,d0.l*4),fp0
  4179.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4180.     fmove.l    fp0,d1
  4181.     move.l    d1,d7
  4182.     move.l    d0,d1
  4183.     moveq    #2,d6
  4184.     asl.l    d6,d1
  4185.     lea    $C(a2),a0
  4186.     move.l    d7,0(a0,d1.l*4)
  4187.     addq.l    #1,d0
  4188. L1131
  4189.     cmp.l    d2,d0
  4190.     blt    L1130
  4191. L1132
  4192. ;                     
  4193.     bra    L1146
  4194. L1133
  4195. ;                     for (i=0;
  4196.     moveq    #0,d0
  4197.     bra    L1135
  4198. L1134
  4199. ;                        dst[i*3+0] = FLOAT_T
  4200.     lea    -$4B10(a5),a0
  4201.     fmove.s    0(a0,d0.l*4),fp0
  4202.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4203.     fmove.l    fp0,d1
  4204.     move.l    d1,d7
  4205.     move.l    d0,d1
  4206.     muls.l    #3,d1
  4207.     move.l    d7,0(a2,d1.l*4)
  4208. ;                        dst[i*3+1] = FLOAT_T
  4209.     lea    -$3210(a5),a0
  4210.     fmove.s    0(a0,d0.l*4),fp0
  4211.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4212.     fmove.l    fp0,d1
  4213.     move.l    d1,d7
  4214.     move.l    d0,d1
  4215.     muls.l    #3,d1
  4216.     lea    4(a2),a0
  4217.     move.l    d7,0(a0,d1.l*4)
  4218. ;                        dst[i*3+2] = FLOAT_T
  4219.     lea    -$1910(a5),a0
  4220.     fmove.s    0(a0,d0.l*4),fp0
  4221.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4222.     fmove.l    fp0,d1
  4223.     move.l    d1,d7
  4224.     move.l    d0,d1
  4225.     muls.l    #3,d1
  4226.     lea    $8(a2),a0
  4227.     move.l    d7,0(a0,d1.l*4)
  4228.     addq.l    #1,d0
  4229. L1135
  4230.     cmp.l    d2,d0
  4231.     blt    L1134
  4232. L1136
  4233. ;                     
  4234.     bra    L1146
  4235. L1137
  4236. ;                     for (i=0;
  4237.     moveq    #0,d0
  4238.     bra    L1139
  4239. L1138
  4240. ;                        dst[i*4+0] = FLOAT_T
  4241.     lea    -$4B10(a5),a0
  4242.     fmove.s    0(a0,d0.l*4),fp0
  4243.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4244.     fmove.l    fp0,d1
  4245.     move.l    d1,d7
  4246.     move.l    d0,d1
  4247.     moveq    #2,d6
  4248.     asl.l    d6,d1
  4249.     move.l    d7,0(a2,d1.l*4)
  4250. ;                        dst[i*4+1] = FLOAT_T
  4251.     lea    -$3210(a5),a0
  4252.     fmove.s    0(a0,d0.l*4),fp0
  4253.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4254.     fmove.l    fp0,d1
  4255.     move.l    d1,d7
  4256.     move.l    d0,d1
  4257.     moveq    #2,d6
  4258.     asl.l    d6,d1
  4259.     lea    4(a2),a0
  4260.     move.l    d7,0(a0,d1.l*4)
  4261. ;                        dst[i*4+2] = FLOAT_T
  4262.     lea    -$1910(a5),a0
  4263.     fmove.s    0(a0,d0.l*4),fp0
  4264.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4265.     fmove.l    fp0,d1
  4266.     move.l    d1,d7
  4267.     move.l    d0,d1
  4268.     moveq    #2,d6
  4269.     asl.l    d6,d1
  4270.     lea    $8(a2),a0
  4271.     move.l    d7,0(a0,d1.l*4)
  4272. ;                        dst[i*4+3] = FLOAT_T
  4273.     lea    -$6410(a5),a0
  4274.     fmove.s    0(a0,d0.l*4),fp0
  4275.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4276.     fmove.l    fp0,d1
  4277.     move.l    d1,d7
  4278.     move.l    d0,d1
  4279.     moveq    #2,d6
  4280.     asl.l    d6,d1
  4281.     lea    $C(a2),a0
  4282.     move.l    d7,0(a0,d1.l*4)
  4283.     addq.l    #1,d0
  4284. L1139
  4285.     cmp.l    d2,d0
  4286.     blt    L1138
  4287. L1140
  4288. ;                     
  4289.     bra    L1146
  4290. L1141
  4291. ;                     for (i=0;
  4292.     moveq    #0,d0
  4293.     bra    L1143
  4294. L1142
  4295. ;                        dst[i*4+0] = FLOAT_T
  4296.     lea    -$6410(a5),a0
  4297.     fmove.s    0(a0,d0.l*4),fp0
  4298.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4299.     fmove.l    fp0,d1
  4300.     move.l    d1,d7
  4301.     move.l    d0,d1
  4302.     moveq    #2,d6
  4303.     asl.l    d6,d1
  4304.     move.l    d7,0(a2,d1.l*4)
  4305. ;                        dst[i*4+1] = FLOAT_T
  4306.     lea    -$4B10(a5),a0
  4307.     fmove.s    0(a0,d0.l*4),fp0
  4308.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4309.     fmove.l    fp0,d1
  4310.     move.l    d1,d7
  4311.     move.l    d0,d1
  4312.     moveq    #2,d6
  4313.     asl.l    d6,d1
  4314.     lea    4(a2),a0
  4315.     move.l    d7,0(a0,d1.l*4)
  4316. ;                        dst[i*4+2] = FLOAT_T
  4317.     lea    -$3210(a5),a0
  4318.     fmove.s    0(a0,d0.l*4),fp0
  4319.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4320.     fmove.l    fp0,d1
  4321.     move.l    d1,d7
  4322.     move.l    d0,d1
  4323.     moveq    #2,d6
  4324.     asl.l    d6,d1
  4325.     lea    $8(a2),a0
  4326.     move.l    d7,0(a0,d1.l*4)
  4327. ;                        dst[i*4+3] = FLOAT_T
  4328.     lea    -$1910(a5),a0
  4329.     fmove.s    0(a0,d0.l*4),fp0
  4330.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  4331.     fmove.l    fp0,d1
  4332.     move.l    d1,d7
  4333.     move.l    d0,d1
  4334.     moveq    #2,d6
  4335.     asl.l    d6,d1
  4336.     lea    $C(a2),a0
  4337.     move.l    d7,0(a0,d1.l*4)
  4338.     addq.l    #1,d0
  4339. L1143
  4340.     cmp.l    d2,d0
  4341.     blt    L1142
  4342. L1144
  4343. ;                     
  4344.     bra.b    L1146
  4345. L1145
  4346. ;                     gl_problem(ctx, "bad forma
  4347.     move.l    #L830,-(a7)
  4348.     move.l    a3,-(a7)
  4349.     jsr    _gl_problem
  4350.     addq.w    #$8,a7
  4351. L1146
  4352. ;           if (ctx->Pack.SwapBytes) 
  4353.     move.l    a3,a0
  4354.     add.l    #$E644,a0
  4355.     tst.b    $18(a0)
  4356.     beq.b    L1148
  4357. L1147
  4358. ;          gl_swap4( (GLuint *) dst, width*n );
  4359.     move.l    d2,d0
  4360.     muls.l    -$10(a5),d0
  4361.     move.l    d0,-(a7)
  4362.     move.l    a2,-(a7)
  4363.     jsr    _gl_swap4
  4364.     addq.w    #$8,a7
  4365. L1148
  4366. ;        
  4367.     bra    L1299
  4368. L1149
  4369. ;                        dst[i*4+1] = blue[i];
  4370.     clr.l    -(a7)
  4371.     move.l    d4,-(a7)
  4372.     clr.l    -(a7)
  4373.     move.l    d5,-(a7)
  4374.     move.l    d3,-(a7)
  4375.     move.l    $18(a5),-(a7)
  4376.     move.l    d2,-(a7)
  4377.     move.l    a4,-(a7)
  4378.     move.l    a3,a0
  4379.     add.l    #$E644,a0
  4380.     pea    (a0)
  4381.     jsr    _gl_pixel_addr_in_image
  4382.     add.w    #$24,a7
  4383.     move.l    d0,a2
  4384. ;               switch (format)
  4385.     move.l    d3,d0
  4386.     cmp.l    #$1908,d0
  4387.     beq    L1178
  4388.     bgt.b    L1328
  4389.     cmp.l    #$1905,d0
  4390.     beq    L1158
  4391.     bgt.b    L1329
  4392.     cmp.l    #$1903,d0
  4393.     beq    L1150
  4394.     cmp.l    #$1904,d0
  4395.     beq    L1154
  4396.     bra    L1194
  4397. L1329
  4398.     cmp.l    #$1906,d0
  4399.     beq    L1162
  4400.     cmp.l    #$1907,d0
  4401.     beq    L1174
  4402.     bra    L1194
  4403. L1328
  4404.     cmp.l    #$8000,d0
  4405.     beq    L1190
  4406.     bgt.b    L1330
  4407.     cmp.l    #$1909,d0
  4408.     beq    L1166
  4409.     cmp.l    #$190A,d0
  4410.     beq    L1170
  4411.     bra    L1194
  4412. L1330
  4413.     cmp.l    #$80E0,d0
  4414.     beq    L1182
  4415.     cmp.l    #$80E1,d0
  4416.     beq    L1186
  4417.     bra    L1194
  4418. ;                  
  4419. L1150
  4420. ;                     for (i=0;
  4421.     moveq    #0,d0
  4422.     bra.b    L1152
  4423. L1151
  4424. ;                        dst[i] = red[i];
  4425.     lea    -$1910(a5),a0
  4426.     fmove.s    0(a0,d0.l*4),fp0
  4427.     fmove.s    fp0,0(a2,d0.l*4)
  4428.     addq.l    #1,d0
  4429. L1152
  4430.     cmp.l    d2,d0
  4431.     blt.b    L1151
  4432. L1153
  4433. ;                     
  4434.     bra    L1195
  4435. L1154
  4436. ;                     for (i=0;
  4437.     moveq    #0,d0
  4438.     bra.b    L1156
  4439. L1155
  4440. ;                        dst[i] = green[i];
  4441.     lea    -$3210(a5),a0
  4442.     fmove.s    0(a0,d0.l*4),fp0
  4443.     fmove.s    fp0,0(a2,d0.l*4)
  4444.     addq.l    #1,d0
  4445. L1156
  4446.     cmp.l    d2,d0
  4447.     blt.b    L1155
  4448. L1157
  4449. ;                     
  4450.     bra    L1195
  4451. L1158
  4452. ;                     for (i=0;
  4453.     moveq    #0,d0
  4454.     bra.b    L1160
  4455. L1159
  4456. ;                        dst[i] = blue[i];
  4457.     lea    -$4B10(a5),a0
  4458.     fmove.s    0(a0,d0.l*4),fp0
  4459.     fmove.s    fp0,0(a2,d0.l*4)
  4460.     addq.l    #1,d0
  4461. L1160
  4462.     cmp.l    d2,d0
  4463.     blt.b    L1159
  4464. L1161
  4465. ;                     
  4466.     bra    L1195
  4467. L1162
  4468. ;                     for (i=0;
  4469.     moveq    #0,d0
  4470.     bra.b    L1164
  4471. L1163
  4472. ;                        dst[i] = alpha[i];
  4473.     lea    -$6410(a5),a0
  4474.     fmove.s    0(a0,d0.l*4),fp0
  4475.     fmove.s    fp0,0(a2,d0.l*4)
  4476.     addq.l    #1,d0
  4477. L1164
  4478.     cmp.l    d2,d0
  4479.     blt.b    L1163
  4480. L1165
  4481. ;                     
  4482.     bra    L1195
  4483. L1166
  4484. ;                     for (i=0;
  4485.     moveq    #0,d0
  4486.     bra.b    L1168
  4487. L1167
  4488. ;                        dst[i] = luminance[i
  4489.     lea    -$7D10(a5),a0
  4490.     fmove.s    0(a0,d0.l*4),fp0
  4491.     fmove.s    fp0,0(a2,d0.l*4)
  4492.     addq.l    #1,d0
  4493. L1168
  4494.     cmp.l    d2,d0
  4495.     blt.b    L1167
  4496. L1169
  4497. ;                     
  4498.     bra    L1195
  4499. L1170
  4500. ;                     for (i=0;
  4501.     moveq    #0,d0
  4502.     bra    L1172
  4503. L1171
  4504. ;                        dst[i*2+0] = luminan
  4505.     lea    -$7D10(a5),a0
  4506.     fmove.s    0(a0,d0.l*4),fp0
  4507.     move.l    d0,d1
  4508.     moveq    #1,d6
  4509.     asl.l    d6,d1
  4510.     fmove.s    fp0,0(a2,d1.l*4)
  4511. ;                        dst[i*2+1] = alpha[i
  4512.     lea    -$6410(a5),a0
  4513.     fmove.s    0(a0,d0.l*4),fp0
  4514.     move.l    d0,d1
  4515.     moveq    #1,d6
  4516.     asl.l    d6,d1
  4517.     lea    4(a2),a0
  4518.     fmove.s    fp0,0(a0,d1.l*4)
  4519.     addq.l    #1,d0
  4520. L1172
  4521.     cmp.l    d2,d0
  4522.     blt.b    L1171
  4523. L1173
  4524. ;                     
  4525.     bra    L1195
  4526. L1174
  4527. ;                     for (i=0;
  4528.     moveq    #0,d0
  4529.     bra    L1176
  4530. L1175
  4531. ;                        dst[i*3+0] = red[i];
  4532.     lea    -$1910(a5),a0
  4533.     fmove.s    0(a0,d0.l*4),fp0
  4534.     move.l    d0,d1
  4535.     muls.l    #3,d1
  4536.     fmove.s    fp0,0(a2,d1.l*4)
  4537. ;                        dst[i*3+1] = green[i
  4538.     lea    -$3210(a5),a0
  4539.     fmove.s    0(a0,d0.l*4),fp0
  4540.     move.l    d0,d1
  4541.     muls.l    #3,d1
  4542.     lea    4(a2),a0
  4543.     fmove.s    fp0,0(a0,d1.l*4)
  4544. ;                        dst[i*3+2] = blue[i];
  4545.     lea    -$4B10(a5),a0
  4546.     fmove.s    0(a0,d0.l*4),fp0
  4547.     move.l    d0,d1
  4548.     muls.l    #3,d1
  4549.     lea    $8(a2),a0
  4550.     fmove.s    fp0,0(a0,d1.l*4)
  4551.     addq.l    #1,d0
  4552. L1176
  4553.     cmp.l    d2,d0
  4554.     blt.b    L1175
  4555. L1177
  4556. ;                     
  4557.     bra    L1195
  4558. L1178
  4559. ;                     for (i=0;
  4560.     moveq    #0,d0
  4561.     bra    L1180
  4562. L1179
  4563. ;                        dst[i*4+0] = red[i];
  4564.     lea    -$1910(a5),a0
  4565.     fmove.s    0(a0,d0.l*4),fp0
  4566.     move.l    d0,d1
  4567.     moveq    #2,d6
  4568.     asl.l    d6,d1
  4569.     fmove.s    fp0,0(a2,d1.l*4)
  4570. ;                        dst[i*4+1] = green[i
  4571.     lea    -$3210(a5),a0
  4572.     fmove.s    0(a0,d0.l*4),fp0
  4573.     move.l    d0,d1
  4574.     moveq    #2,d6
  4575.     asl.l    d6,d1
  4576.     lea    4(a2),a0
  4577.     fmove.s    fp0,0(a0,d1.l*4)
  4578. ;                        dst[i*4+2] = blue[i];
  4579.     lea    -$4B10(a5),a0
  4580.     fmove.s    0(a0,d0.l*4),fp0
  4581.     move.l    d0,d1
  4582.     moveq    #2,d6
  4583.     asl.l    d6,d1
  4584.     lea    $8(a2),a0
  4585.     fmove.s    fp0,0(a0,d1.l*4)
  4586. ;                        dst[i*4+3] = alpha[i
  4587.     lea    -$6410(a5),a0
  4588.     fmove.s    0(a0,d0.l*4),fp0
  4589.     move.l    d0,d1
  4590.     moveq    #2,d6
  4591.     asl.l    d6,d1
  4592.     lea    $C(a2),a0
  4593.     fmove.s    fp0,0(a0,d1.l*4)
  4594.     addq.l    #1,d0
  4595. L1180
  4596.     cmp.l    d2,d0
  4597.     blt.b    L1179
  4598. L1181
  4599. ;                     
  4600.     bra    L1195
  4601. L1182
  4602. ;                     for (i=0;
  4603.     moveq    #0,d0
  4604.     bra    L1184
  4605. L1183
  4606. ;                        dst[i*3+0] = blue[i];
  4607.     lea    -$4B10(a5),a0
  4608.     fmove.s    0(a0,d0.l*4),fp0
  4609.     move.l    d0,d1
  4610.     muls.l    #3,d1
  4611.     fmove.s    fp0,0(a2,d1.l*4)
  4612. ;                        dst[i*3+1] = green[i
  4613.     lea    -$3210(a5),a0
  4614.     fmove.s    0(a0,d0.l*4),fp0
  4615.     move.l    d0,d1
  4616.     muls.l    #3,d1
  4617.     lea    4(a2),a0
  4618.     fmove.s    fp0,0(a0,d1.l*4)
  4619. ;                        dst[i*3+2] = red[i];
  4620.     lea    -$1910(a5),a0
  4621.     fmove.s    0(a0,d0.l*4),fp0
  4622.     move.l    d0,d1
  4623.     muls.l    #3,d1
  4624.     lea    $8(a2),a0
  4625.     fmove.s    fp0,0(a0,d1.l*4)
  4626.     addq.l    #1,d0
  4627. L1184
  4628.     cmp.l    d2,d0
  4629.     blt.b    L1183
  4630. L1185
  4631. ;                     
  4632.     bra    L1195
  4633. L1186
  4634. ;                     for (i=0;
  4635.     moveq    #0,d0
  4636.     bra    L1188
  4637. L1187
  4638. ;                        dst[i*4+0] = blue[i];
  4639.     lea    -$4B10(a5),a0
  4640.     fmove.s    0(a0,d0.l*4),fp0
  4641.     move.l    d0,d1
  4642.     moveq    #2,d6
  4643.     asl.l    d6,d1
  4644.     fmove.s    fp0,0(a2,d1.l*4)
  4645. ;                        dst[i*4+1] = green[i
  4646.     lea    -$3210(a5),a0
  4647.     fmove.s    0(a0,d0.l*4),fp0
  4648.     move.l    d0,d1
  4649.     moveq    #2,d6
  4650.     asl.l    d6,d1
  4651.     lea    4(a2),a0
  4652.     fmove.s    fp0,0(a0,d1.l*4)
  4653. ;                        dst[i*4+2] = red[i];
  4654.     lea    -$1910(a5),a0
  4655.     fmove.s    0(a0,d0.l*4),fp0
  4656.     move.l    d0,d1
  4657.     moveq    #2,d6
  4658.     asl.l    d6,d1
  4659.     lea    $8(a2),a0
  4660.     fmove.s    fp0,0(a0,d1.l*4)
  4661. ;                        dst[i*4+3] = alpha[i
  4662.     lea    -$6410(a5),a0
  4663.     fmove.s    0(a0,d0.l*4),fp0
  4664.     move.l    d0,d1
  4665.     moveq    #2,d6
  4666.     asl.l    d6,d1
  4667.     lea    $C(a2),a0
  4668.     fmove.s    fp0,0(a0,d1.l*4)
  4669.     addq.l    #1,d0
  4670. L1188
  4671.     cmp.l    d2,d0
  4672.     blt.b    L1187
  4673. L1189
  4674. ;                     
  4675.     bra    L1195
  4676. L1190
  4677. ;                     for (i=0;
  4678.     moveq    #0,d0
  4679.     bra    L1192
  4680. L1191
  4681. ;                        dst[i*4+0] = alpha[i
  4682.     lea    -$6410(a5),a0
  4683.     fmove.s    0(a0,d0.l*4),fp0
  4684.     move.l    d0,d1
  4685.     moveq    #2,d6
  4686.     asl.l    d6,d1
  4687.     fmove.s    fp0,0(a2,d1.l*4)
  4688. ;                        dst[i*4+1] = blue[i];
  4689.     lea    -$4B10(a5),a0
  4690.     fmove.s    0(a0,d0.l*4),fp0
  4691.     move.l    d0,d1
  4692.     moveq    #2,d6
  4693.     asl.l    d6,d1
  4694.     lea    4(a2),a0
  4695.     fmove.s    fp0,0(a0,d1.l*4)
  4696. ;                        dst[i*4+2] = green[i
  4697.     lea    -$3210(a5),a0
  4698.     fmove.s    0(a0,d0.l*4),fp0
  4699.     move.l    d0,d1
  4700.     moveq    #2,d6
  4701.     asl.l    d6,d1
  4702.     lea    $8(a2),a0
  4703.     fmove.s    fp0,0(a0,d1.l*4)
  4704. ;                        dst[i*4+3] = red[i];
  4705.     lea    -$1910(a5),a0
  4706.     fmove.s    0(a0,d0.l*4),fp0
  4707.     move.l    d0,d1
  4708.     moveq    #2,d6
  4709.     asl.l    d6,d1
  4710.     lea    $C(a2),a0
  4711.     fmove.s    fp0,0(a0,d1.l*4)
  4712.     addq.l    #1,d0
  4713. L1192
  4714.     cmp.l    d2,d0
  4715.     blt.b    L1191
  4716. L1193
  4717. ;                     
  4718.     bra.b    L1195
  4719. L1194
  4720. ;                     gl_problem(ctx, "bad forma
  4721.     move.l    #L830,-(a7)
  4722.     move.l    a3,-(a7)
  4723.     jsr    _gl_problem
  4724.     addq.w    #$8,a7
  4725. L1195
  4726. ;           if (ctx->Pack.SwapBytes) 
  4727.     move.l    a3,a0
  4728.     add.l    #$E644,a0
  4729.     tst.b    $18(a0)
  4730.     beq.b    L1197
  4731. L1196
  4732. ;          gl_swap4( (GLuint *) dst, width*n );
  4733.     move.l    d2,d0
  4734.     muls.l    -$10(a5),d0
  4735.     move.l    d0,-(a7)
  4736.     move.l    a2,-(a7)
  4737.     jsr    _gl_swap4
  4738.     addq.w    #$8,a7
  4739. L1197
  4740. ;        
  4741.     bra    L1299
  4742. L1198
  4743. ;            if (format == GL_RGB) 
  4744.     cmp.l    #$1907,d3
  4745.     bne    L1202
  4746. L1199
  4747. ;               GLubyte *dst = (GLubyte *) gl_pixel_ad
  4748.     clr.l    -(a7)
  4749.     move.l    d4,-(a7)
  4750.     clr.l    -(a7)
  4751.     move.l    d5,-(a7)
  4752.     move.l    d3,-(a7)
  4753.     move.l    $18(a5),-(a7)
  4754.     move.l    d2,-(a7)
  4755.     move.l    a4,-(a7)
  4756.     move.l    a3,a0
  4757.     add.l    #$E644,a0
  4758.     pea    (a0)
  4759.     jsr    _gl_pixel_addr_in_image
  4760.     add.w    #$24,a7
  4761.     move.l    d0,a1
  4762. ;               for (i=0;
  4763.     moveq    #0,d0
  4764.     bra    L1201
  4765. L1200
  4766. ;                  dst[i] = (((GLint) (red[i]   * 7
  4767.     lea    -$1910(a5),a0
  4768.     fmove.s    0(a0,d0.l*4),fp0
  4769.     fmul.s    #$.40E00000,fp0
  4770.     fmove.l    fp0,d1
  4771.     moveq    #5,d6
  4772.     asl.l    d6,d1
  4773.     lea    -$3210(a5),a0
  4774.     fmove.s    0(a0,d0.l*4),fp0
  4775.     fmul.s    #$.40E00000,fp0
  4776.     fmove.l    fp0,d6
  4777.     moveq    #2,d7
  4778.     asl.l    d7,d6
  4779.     or.l    d6,d1
  4780.     lea    -$4B10(a5),a0
  4781.     fmove.s    0(a0,d0.l*4),fp0
  4782.     fmul.s    #$.40400000,fp0
  4783.     fmove.l    fp0,d6
  4784.     or.l    d6,d1
  4785.     move.b    d1,0(a1,d0.l)
  4786.     addq.l    #1,d0
  4787. L1201
  4788.     cmp.l    d2,d0
  4789.     blt.b    L1200
  4790. L1202
  4791. ;            
  4792.     bra    L1299
  4793. L1203
  4794. ;            if (format == GL_RGB) 
  4795.     cmp.l    #$1907,d3
  4796.     bne    L1207
  4797. L1204
  4798. ;               GLubyte *dst = (GLubyte *) gl_pixel_ad
  4799.     clr.l    -(a7)
  4800.     move.l    d4,-(a7)
  4801.     clr.l    -(a7)
  4802.     move.l    d5,-(a7)
  4803.     move.l    d3,-(a7)
  4804.     move.l    $18(a5),-(a7)
  4805.     move.l    d2,-(a7)
  4806.     move.l    a4,-(a7)
  4807.     move.l    a3,a0
  4808.     add.l    #$E644,a0
  4809.     pea    (a0)
  4810.     jsr    _gl_pixel_addr_in_image
  4811.     add.w    #$24,a7
  4812.     move.l    d0,a1
  4813. ;               for (i=0;
  4814.     moveq    #0,d0
  4815.     bra    L1206
  4816. L1205
  4817. ;                  dst[i] = (((GLint) (red[i]   * 7
  4818.     lea    -$1910(a5),a0
  4819.     fmove.s    0(a0,d0.l*4),fp0
  4820.     fmul.s    #$.40E00000,fp0
  4821.     fmove.l    fp0,d1
  4822.     lea    -$3210(a5),a0
  4823.     fmove.s    0(a0,d0.l*4),fp0
  4824.     fmul.s    #$.40E00000,fp0
  4825.     fmove.l    fp0,d6
  4826.     moveq    #3,d7
  4827.     asl.l    d7,d6
  4828.     or.l    d6,d1
  4829.     lea    -$4B10(a5),a0
  4830.     fmove.s    0(a0,d0.l*4),fp0
  4831.     fmul.s    #$.40400000,fp0
  4832.     fmove.l    fp0,d6
  4833.     moveq    #5,d7
  4834.     asl.l    d7,d6
  4835.     or.l    d6,d1
  4836.     move.b    d1,0(a1,d0.l)
  4837.     addq.l    #1,d0
  4838. L1206
  4839.     cmp.l    d2,d0
  4840.     blt.b    L1205
  4841. L1207
  4842. ;            
  4843.     bra    L1299
  4844. L1208
  4845. ;            if (format == GL_RGB) 
  4846.     cmp.l    #$1907,d3
  4847.     bne    L1212
  4848. L1209
  4849. ;               GLushort *dst = (GLushort *) gl_pixel_
  4850.     clr.l    -(a7)
  4851.     move.l    d4,-(a7)
  4852.     clr.l    -(a7)
  4853.     move.l    d5,-(a7)
  4854.     move.l    d3,-(a7)
  4855.     move.l    $18(a5),-(a7)
  4856.     move.l    d2,-(a7)
  4857.     move.l    a4,-(a7)
  4858.     move.l    a3,a0
  4859.     add.l    #$E644,a0
  4860.     pea    (a0)
  4861.     jsr    _gl_pixel_addr_in_image
  4862.     add.w    #$24,a7
  4863.     move.l    d0,a1
  4864. ;               for (i=0;
  4865.     moveq    #0,d0
  4866.     bra    L1211
  4867. L1210
  4868. ;                  dst[i] = (((GLint) (red[i]   * 3
  4869.     lea    -$1910(a5),a0
  4870.     fmove.s    0(a0,d0.l*4),fp0
  4871.     fmul.s    #$.41F80000,fp0
  4872.     fmove.l    fp0,d1
  4873.     moveq    #$B,d6
  4874.     asl.l    d6,d1
  4875.     lea    -$3210(a5),a0
  4876.     fmove.s    0(a0,d0.l*4),fp0
  4877.     fmul.s    #$.427C0000,fp0
  4878.     fmove.l    fp0,d6
  4879.     moveq    #5,d7
  4880.     asl.l    d7,d6
  4881.     or.l    d6,d1
  4882.     lea    -$4B10(a5),a0
  4883.     fmove.s    0(a0,d0.l*4),fp0
  4884.     fmul.s    #$.41F80000,fp0
  4885.     fmove.l    fp0,d6
  4886.     or.l    d6,d1
  4887.     move.w    d1,0(a1,d0.l*2)
  4888.     addq.l    #1,d0
  4889. L1211
  4890.     cmp.l    d2,d0
  4891.     blt.b    L1210
  4892. L1212
  4893. ;            
  4894.     bra    L1299
  4895. L1213
  4896. ;            if (format == GL_RGB) 
  4897.     cmp.l    #$1907,d3
  4898.     bne    L1217
  4899. L1214
  4900. ;               GLushort *dst = (GLushort *) gl_pixel_
  4901.     clr.l    -(a7)
  4902.     move.l    d4,-(a7)
  4903.     clr.l    -(a7)
  4904.     move.l    d5,-(a7)
  4905.     move.l    d3,-(a7)
  4906.     move.l    $18(a5),-(a7)
  4907.     move.l    d2,-(a7)
  4908.     move.l    a4,-(a7)
  4909.     move.l    a3,a0
  4910.     add.l    #$E644,a0
  4911.     pea    (a0)
  4912.     jsr    _gl_pixel_addr_in_image
  4913.     add.w    #$24,a7
  4914.     move.l    d0,a1
  4915. ;               for (i=0;
  4916.     moveq    #0,d0
  4917.     bra    L1216
  4918. L1215
  4919. ;                  dst[i] = (((GLint) (red[i]   * 3
  4920.     lea    -$1910(a5),a0
  4921.     fmove.s    0(a0,d0.l*4),fp0
  4922.     fmul.s    #$.41F80000,fp0
  4923.     fmove.l    fp0,d1
  4924.     lea    -$3210(a5),a0
  4925.     fmove.s    0(a0,d0.l*4),fp0
  4926.     fmul.s    #$.427C0000,fp0
  4927.     fmove.l    fp0,d6
  4928.     moveq    #5,d7
  4929.     asl.l    d7,d6
  4930.     or.l    d6,d1
  4931.     lea    -$4B10(a5),a0
  4932.     fmove.s    0(a0,d0.l*4),fp0
  4933.     fmul.s    #$.41F80000,fp0
  4934.     fmove.l    fp0,d6
  4935.     moveq    #$B,d7
  4936.     asl.l    d7,d6
  4937.     or.l    d6,d1
  4938.     move.w    d1,0(a1,d0.l*2)
  4939.     addq.l    #1,d0
  4940. L1216
  4941.     cmp.l    d2,d0
  4942.     blt.b    L1215
  4943. L1217
  4944. ;            
  4945.     bra    L1299
  4946. L1218
  4947. ;            if (format == GL_RGB) 
  4948.     cmp.l    #$1907,d3
  4949.     bne    L1222
  4950. L1219
  4951. ;               GLushort *dst = (GLushort *) gl_pixel_
  4952.     clr.l    -(a7)
  4953.     move.l    d4,-(a7)
  4954.     clr.l    -(a7)
  4955.     move.l    d5,-(a7)
  4956.     move.l    d3,-(a7)
  4957.     move.l    $18(a5),-(a7)
  4958.     move.l    d2,-(a7)
  4959.     move.l    a4,-(a7)
  4960.     move.l    a3,a0
  4961.     add.l    #$E644,a0
  4962.     pea    (a0)
  4963.     jsr    _gl_pixel_addr_in_image
  4964.     add.w    #$24,a7
  4965.     move.l    d0,a1
  4966. ;               for (i=0;
  4967.     moveq    #0,d0
  4968.     bra    L1221
  4969. L1220
  4970. ;                  dst[i] = (((GLint) (red[i]   * 1
  4971.     lea    -$1910(a5),a0
  4972.     fmove.s    0(a0,d0.l*4),fp0
  4973.     fmul.s    #$.41700000,fp0
  4974.     fmove.l    fp0,d1
  4975.     moveq    #$C,d6
  4976.     asl.l    d6,d1
  4977.     lea    -$3210(a5),a0
  4978.     fmove.s    0(a0,d0.l*4),fp0
  4979.     fmul.s    #$.41700000,fp0
  4980.     fmove.l    fp0,d6
  4981.     moveq    #$8,d7
  4982.     asl.l    d7,d6
  4983.     or.l    d6,d1
  4984.     lea    -$4B10(a5),a0
  4985.     fmove.s    0(a0,d0.l*4),fp0
  4986.     fmul.s    #$.41700000,fp0
  4987.     fmove.l    fp0,d6
  4988.     moveq    #4,d7
  4989.     asl.l    d7,d6
  4990.     or.l    d6,d1
  4991.     lea    -$6410(a5),a0
  4992.     fmove.s    0(a0,d0.l*4),fp0
  4993.     fmul.s    #$.41700000,fp0
  4994.     fmove.l    fp0,d6
  4995.     or.l    d6,d1
  4996.     move.w    d1,0(a1,d0.l*2)
  4997.     addq.l    #1,d0
  4998. L1221
  4999.     cmp.l    d2,d0
  5000.     blt.b    L1220
  5001. L1222
  5002. ;            
  5003.     bra    L1299
  5004. L1223
  5005. ;            if (format == GL_RGB) 
  5006.     cmp.l    #$1907,d3
  5007.     bne    L1227
  5008. L1224
  5009. ;               GLushort *dst = (GLushort *) gl_pixel_
  5010.     clr.l    -(a7)
  5011.     move.l    d4,-(a7)
  5012.     clr.l    -(a7)
  5013.     move.l    d5,-(a7)
  5014.     move.l    d3,-(a7)
  5015.     move.l    $18(a5),-(a7)
  5016.     move.l    d2,-(a7)
  5017.     move.l    a4,-(a7)
  5018.     move.l    a3,a0
  5019.     add.l    #$E644,a0
  5020.     pea    (a0)
  5021.     jsr    _gl_pixel_addr_in_image
  5022.     add.w    #$24,a7
  5023.     move.l    d0,a1
  5024. ;               for (i=0;
  5025.     moveq    #0,d0
  5026.     bra    L1226
  5027. L1225
  5028. ;                  dst[i] = (((GLint) (red[i]   * 1
  5029.     lea    -$1910(a5),a0
  5030.     fmove.s    0(a0,d0.l*4),fp0
  5031.     fmul.s    #$.41700000,fp0
  5032.     fmove.l    fp0,d1
  5033.     lea    -$3210(a5),a0
  5034.     fmove.s    0(a0,d0.l*4),fp0
  5035.     fmul.s    #$.41700000,fp0
  5036.     fmove.l    fp0,d6
  5037.     moveq    #4,d7
  5038.     asl.l    d7,d6
  5039.     or.l    d6,d1
  5040.     lea    -$4B10(a5),a0
  5041.     fmove.s    0(a0,d0.l*4),fp0
  5042.     fmul.s    #$.41700000,fp0
  5043.     fmove.l    fp0,d6
  5044.     moveq    #$8,d7
  5045.     asl.l    d7,d6
  5046.     or.l    d6,d1
  5047.     lea    -$6410(a5),a0
  5048.     fmove.s    0(a0,d0.l*4),fp0
  5049.     fmul.s    #$.41700000,fp0
  5050.     fmove.l    fp0,d6
  5051.     moveq    #$C,d7
  5052.     asl.l    d7,d6
  5053.     or.l    d6,d1
  5054.     move.w    d1,0(a1,d0.l*2)
  5055.     addq.l    #1,d0
  5056. L1226
  5057.     cmp.l    d2,d0
  5058.     blt.b    L1225
  5059. L1227
  5060. ;            
  5061.     bra    L1299
  5062. L1228
  5063. ;            if (format == GL_RGB) 
  5064.     cmp.l    #$1907,d3
  5065.     bne    L1232
  5066. L1229
  5067. ;               GLushort *dst = (GLushort *) gl_pixel_
  5068.     clr.l    -(a7)
  5069.     move.l    d4,-(a7)
  5070.     clr.l    -(a7)
  5071.     move.l    d5,-(a7)
  5072.     move.l    d3,-(a7)
  5073.     move.l    $18(a5),-(a7)
  5074.     move.l    d2,-(a7)
  5075.     move.l    a4,-(a7)
  5076.     move.l    a3,a0
  5077.     add.l    #$E644,a0
  5078.     pea    (a0)
  5079.     jsr    _gl_pixel_addr_in_image
  5080.     add.w    #$24,a7
  5081.     move.l    d0,a1
  5082. ;               for (i=0;
  5083.     moveq    #0,d0
  5084.     bra    L1231
  5085. L1230
  5086. ;                  dst[i] = (((GLint) (red[i]   * 3
  5087.     lea    -$1910(a5),a0
  5088.     fmove.s    0(a0,d0.l*4),fp0
  5089.     fmul.s    #$.41F80000,fp0
  5090.     fmove.l    fp0,d1
  5091.     moveq    #$B,d6
  5092.     asl.l    d6,d1
  5093.     lea    -$3210(a5),a0
  5094.     fmove.s    0(a0,d0.l*4),fp0
  5095.     fmul.s    #$.41F80000,fp0
  5096.     fmove.l    fp0,d6
  5097.     moveq    #6,d7
  5098.     asl.l    d7,d6
  5099.     or.l    d6,d1
  5100.     lea    -$4B10(a5),a0
  5101.     fmove.s    0(a0,d0.l*4),fp0
  5102.     fmul.s    #$.41F80000,fp0
  5103.     fmove.l    fp0,d6
  5104.     moveq    #1,d7
  5105.     asl.l    d7,d6
  5106.     or.l    d6,d1
  5107.     lea    -$6410(a5),a0
  5108.     fmove.s    0(a0,d0.l*4),fp0
  5109.     fmul.s    #$.3F800000,fp0
  5110.     fmove.l    fp0,d6
  5111.     or.l    d6,d1
  5112.     move.w    d1,0(a1,d0.l*2)
  5113.     addq.l    #1,d0
  5114. L1231
  5115.     cmp.l    d2,d0
  5116.     blt.b    L1230
  5117. L1232
  5118. ;            
  5119.     bra    L1299
  5120. L1233
  5121. ;            if (format == GL_RGB) 
  5122.     cmp.l    #$1907,d3
  5123.     bne    L1237
  5124. L1234
  5125. ;               GLushort *dst = (GLushort *) gl_pixel_
  5126.     clr.l    -(a7)
  5127.     move.l    d4,-(a7)
  5128.     clr.l    -(a7)
  5129.     move.l    d5,-(a7)
  5130.     move.l    d3,-(a7)
  5131.     move.l    $18(a5),-(a7)
  5132.     move.l    d2,-(a7)
  5133.     move.l    a4,-(a7)
  5134.     move.l    a3,a0
  5135.     add.l    #$E644,a0
  5136.     pea    (a0)
  5137.     jsr    _gl_pixel_addr_in_image
  5138.     add.w    #$24,a7
  5139.     move.l    d0,a1
  5140. ;               for (i=0;
  5141.     moveq    #0,d0
  5142.     bra    L1236
  5143. L1235
  5144. ;                  dst[i] = (((GLint) (red[i]   * 3
  5145.     lea    -$1910(a5),a0
  5146.     fmove.s    0(a0,d0.l*4),fp0
  5147.     fmul.s    #$.41F80000,fp0
  5148.     fmove.l    fp0,d1
  5149.     lea    -$3210(a5),a0
  5150.     fmove.s    0(a0,d0.l*4),fp0
  5151.     fmul.s    #$.41F80000,fp0
  5152.     fmove.l    fp0,d6
  5153.     moveq    #5,d7
  5154.     asl.l    d7,d6
  5155.     or.l    d6,d1
  5156.     lea    -$4B10(a5),a0
  5157.     fmove.s    0(a0,d0.l*4),fp0
  5158.     fmul.s    #$.41F80000,fp0
  5159.     fmove.l    fp0,d6
  5160.     moveq    #$A,d7
  5161.     asl.l    d7,d6
  5162.     or.l    d6,d1
  5163.     lea    -$6410(a5),a0
  5164.     fmove.s    0(a0,d0.l*4),fp0
  5165.     fmul.s    #$.3F800000,fp0
  5166.     fmove.l    fp0,d6
  5167.     moveq    #$F,d7
  5168.     asl.l    d7,d6
  5169.     or.l    d6,d1
  5170.     move.w    d1,0(a1,d0.l*2)
  5171.     addq.l    #1,d0
  5172. L1236
  5173.     cmp.l    d2,d0
  5174.     blt.b    L1235
  5175. L1237
  5176. ;            
  5177.     bra    L1299
  5178. L1238
  5179. ;            if (format == GL_RGBA) 
  5180.     cmp.l    #$1908,d3
  5181.     bne    L1243
  5182. L1239
  5183. ;               GLuint *dst = (GLuint *) gl_pixel_addr
  5184.     clr.l    -(a7)
  5185.     move.l    d4,-(a7)
  5186.     clr.l    -(a7)
  5187.     move.l    d5,-(a7)
  5188.     move.l    d3,-(a7)
  5189.     move.l    $18(a5),-(a7)
  5190.     move.l    d2,-(a7)
  5191.     move.l    a4,-(a7)
  5192.     move.l    a3,a0
  5193.     add.l    #$E644,a0
  5194.     pea    (a0)
  5195.     jsr    _gl_pixel_addr_in_image
  5196.     add.w    #$24,a7
  5197.     move.l    d0,a1
  5198. ;               for (i=0;
  5199.     moveq    #0,d0
  5200.     bra    L1241
  5201. L1240
  5202. ;                  dst[i] = (((GLint) (red[i]   * 2
  5203.     lea    -$1910(a5),a0
  5204.     fmove.s    0(a0,d0.l*4),fp0
  5205.     fmul.s    #$.437F0000,fp0
  5206.     fmove.l    fp0,d1
  5207.     moveq    #$18,d6
  5208.     asl.l    d6,d1
  5209.     lea    -$3210(a5),a0
  5210.     fmove.s    0(a0,d0.l*4),fp0
  5211.     fmul.s    #$.437F0000,fp0
  5212.     fmove.l    fp0,d6
  5213.     moveq    #$10,d7
  5214.     asl.l    d7,d6
  5215.     or.l    d6,d1
  5216.     lea    -$4B10(a5),a0
  5217.     fmove.s    0(a0,d0.l*4),fp0
  5218.     fmul.s    #$.437F0000,fp0
  5219.     fmove.l    fp0,d6
  5220.     moveq    #$8,d7
  5221.     asl.l    d7,d6
  5222.     or.l    d6,d1
  5223.     lea    -$6410(a5),a0
  5224.     fmove.s    0(a0,d0.l*4),fp0
  5225.     fmul.s    #$.437F0000,fp0
  5226.     fmove.l    fp0,d6
  5227.     or.l    d6,d1
  5228.     move.l    d1,0(a1,d0.l*4)
  5229.     addq.l    #1,d0
  5230. L1241
  5231.     cmp.l    d2,d0
  5232.     blt.b    L1240
  5233. L1242
  5234.     bra    L1252
  5235. L1243
  5236. ;            else if (format == GL_BGRA) 
  5237.     cmp.l    #$80E1,d3
  5238.     bne    L1248
  5239. L1244
  5240. ;               GLushort *dst = (GLushort *) gl_pixel_
  5241.     clr.l    -(a7)
  5242.     move.l    d4,-(a7)
  5243.     clr.l    -(a7)
  5244.     move.l    d5,-(a7)
  5245.     move.l    d3,-(a7)
  5246.     move.l    $18(a5),-(a7)
  5247.     move.l    d2,-(a7)
  5248.     move.l    a4,-(a7)
  5249.     move.l    a3,a0
  5250.     add.l    #$E644,a0
  5251.     pea    (a0)
  5252.     jsr    _gl_pixel_addr_in_image
  5253.     add.w    #$24,a7
  5254.     move.l    d0,a1
  5255. ;               for (i=0;
  5256.     moveq    #0,d0
  5257.     bra    L1246
  5258. L1245
  5259. ;                  dst[i] = (((GLint) (blue[i]  * 2
  5260.     lea    -$4B10(a5),a0
  5261.     fmove.s    0(a0,d0.l*4),fp0
  5262.     fmul.s    #$.437F0000,fp0
  5263.     fmove.l    fp0,d1
  5264.     moveq    #$18,d6
  5265.     asl.l    d6,d1
  5266.     lea    -$3210(a5),a0
  5267.     fmove.s    0(a0,d0.l*4),fp0
  5268.     fmul.s    #$.437F0000,fp0
  5269.     fmove.l    fp0,d6
  5270.     moveq    #$10,d7
  5271.     asl.l    d7,d6
  5272.     or.l    d6,d1
  5273.     lea    -$1910(a5),a0
  5274.     fmove.s    0(a0,d0.l*4),fp0
  5275.     fmul.s    #$.437F0000,fp0
  5276.     fmove.l    fp0,d6
  5277.     moveq    #$8,d7
  5278.     asl.l    d7,d6
  5279.     or.l    d6,d1
  5280.     lea    -$6410(a5),a0
  5281.     fmove.s    0(a0,d0.l*4),fp0
  5282.     fmul.s    #$.437F0000,fp0
  5283.     fmove.l    fp0,d6
  5284.     or.l    d6,d1
  5285.     move.w    d1,0(a1,d0.l*2)
  5286.     addq.l    #1,d0
  5287. L1246
  5288.     cmp.l    d2,d0
  5289.     blt.b    L1245
  5290. L1247
  5291.     bra    L1252
  5292. L1248
  5293. ;            else if (format == GL_ABGR_EXT) 
  5294.     cmp.l    #$8000,d3
  5295.     bne    L1252
  5296. L1249
  5297. ;               GLushort *dst = (GLushort *) gl_pixel_
  5298.     clr.l    -(a7)
  5299.     move.l    d4,-(a7)
  5300.     clr.l    -(a7)
  5301.     move.l    d5,-(a7)
  5302.     move.l    d3,-(a7)
  5303.     move.l    $18(a5),-(a7)
  5304.     move.l    d2,-(a7)
  5305.     move.l    a4,-(a7)
  5306.     move.l    a3,a0
  5307.     add.l    #$E644,a0
  5308.     pea    (a0)
  5309.     jsr    _gl_pixel_addr_in_image
  5310.     add.w    #$24,a7
  5311.     move.l    d0,a1
  5312. ;               for (i=0;
  5313.     moveq    #0,d0
  5314.     bra    L1251
  5315. L1250
  5316. ;                  dst[i] = (((GLint) (alpha[i] * 2
  5317.     lea    -$6410(a5),a0
  5318.     fmove.s    0(a0,d0.l*4),fp0
  5319.     fmul.s    #$.437F0000,fp0
  5320.     fmove.l    fp0,d1
  5321.     moveq    #$18,d6
  5322.     asl.l    d6,d1
  5323.     lea    -$4B10(a5),a0
  5324.     fmove.s    0(a0,d0.l*4),fp0
  5325.     fmul.s    #$.437F0000,fp0
  5326.     fmove.l    fp0,d6
  5327.     moveq    #$10,d7
  5328.     asl.l    d7,d6
  5329.     or.l    d6,d1
  5330.     lea    -$3210(a5),a0
  5331.     fmove.s    0(a0,d0.l*4),fp0
  5332.     fmul.s    #$.437F0000,fp0
  5333.     fmove.l    fp0,d6
  5334.     moveq    #$8,d7
  5335.     asl.l    d7,d6
  5336.     or.l    d6,d1
  5337.     lea    -$1910(a5),a0
  5338.     fmove.s    0(a0,d0.l*4),fp0
  5339.     fmul.s    #$.437F0000,fp0
  5340.     fmove.l    fp0,d6
  5341.     or.l    d6,d1
  5342.     move.w    d1,0(a1,d0.l*2)
  5343.     addq.l    #1,d0
  5344. L1251
  5345.     cmp.l    d2,d0
  5346.     blt.b    L1250
  5347. L1252
  5348. ;            
  5349.     bra    L1299
  5350. L1253
  5351. ;            if (format == GL_RGBA) 
  5352.     cmp.l    #$1908,d3
  5353.     bne    L1258
  5354. L1254
  5355. ;               GLuint *dst = (GLuint *) gl_pixel_addr
  5356.     clr.l    -(a7)
  5357.     move.l    d4,-(a7)
  5358.     clr.l    -(a7)
  5359.     move.l    d5,-(a7)
  5360.     move.l    d3,-(a7)
  5361.     move.l    $18(a5),-(a7)
  5362.     move.l    d2,-(a7)
  5363.     move.l    a4,-(a7)
  5364.     move.l    a3,a0
  5365.     add.l    #$E644,a0
  5366.     pea    (a0)
  5367.     jsr    _gl_pixel_addr_in_image
  5368.     add.w    #$24,a7
  5369.     move.l    d0,a1
  5370. ;               for (i=0;
  5371.     moveq    #0,d0
  5372.     bra    L1256
  5373. L1255
  5374. ;                  dst[i] = (((GLint) (red[i]   * 2
  5375.     lea    -$1910(a5),a0
  5376.     fmove.s    0(a0,d0.l*4),fp0
  5377.     fmul.s    #$.437F0000,fp0
  5378.     fmove.l    fp0,d1
  5379.     lea    -$3210(a5),a0
  5380.     fmove.s    0(a0,d0.l*4),fp0
  5381.     fmul.s    #$.437F0000,fp0
  5382.     fmove.l    fp0,d6
  5383.     moveq    #$8,d7
  5384.     asl.l    d7,d6
  5385.     or.l    d6,d1
  5386.     lea    -$4B10(a5),a0
  5387.     fmove.s    0(a0,d0.l*4),fp0
  5388.     fmul.s    #$.437F0000,fp0
  5389.     fmove.l    fp0,d6
  5390.     moveq    #$10,d7
  5391.     asl.l    d7,d6
  5392.     or.l    d6,d1
  5393.     lea    -$6410(a5),a0
  5394.     fmove.s    0(a0,d0.l*4),fp0
  5395.     fmul.s    #$.437F0000,fp0
  5396.     fmove.l    fp0,d6
  5397.     moveq    #$18,d7
  5398.     asl.l    d7,d6
  5399.     or.l    d6,d1
  5400.     move.l    d1,0(a1,d0.l*4)
  5401.     addq.l    #1,d0
  5402. L1256
  5403.     cmp.l    d2,d0
  5404.     blt.b    L1255
  5405. L1257
  5406.     bra    L1267
  5407. L1258
  5408. ;            else if (format == GL_BGRA) 
  5409.     cmp.l    #$80E1,d3
  5410.     bne    L1263
  5411. L1259
  5412. ;               GLushort *dst = (GLushort *) gl_pixel_
  5413.     clr.l    -(a7)
  5414.     move.l    d4,-(a7)
  5415.     clr.l    -(a7)
  5416.     move.l    d5,-(a7)
  5417.     move.l    d3,-(a7)
  5418.     move.l    $18(a5),-(a7)
  5419.     move.l    d2,-(a7)
  5420.     move.l    a4,-(a7)
  5421.     move.l    a3,a0
  5422.     add.l    #$E644,a0
  5423.     pea    (a0)
  5424.     jsr    _gl_pixel_addr_in_image
  5425.     add.w    #$24,a7
  5426.     move.l    d0,a1
  5427. ;               for (i=0;
  5428.     moveq    #0,d0
  5429.     bra    L1261
  5430. L1260
  5431. ;                  dst[i] = (((GLint) (blue[i]  * 2
  5432.     lea    -$4B10(a5),a0
  5433.     fmove.s    0(a0,d0.l*4),fp0
  5434.     fmul.s    #$.437F0000,fp0
  5435.     fmove.l    fp0,d1
  5436.     lea    -$3210(a5),a0
  5437.     fmove.s    0(a0,d0.l*4),fp0
  5438.     fmul.s    #$.437F0000,fp0
  5439.     fmove.l    fp0,d6
  5440.     moveq    #$8,d7
  5441.     asl.l    d7,d6
  5442.     or.l    d6,d1
  5443.     lea    -$1910(a5),a0
  5444.     fmove.s    0(a0,d0.l*4),fp0
  5445.     fmul.s    #$.437F0000,fp0
  5446.     fmove.l    fp0,d6
  5447.     moveq    #$10,d7
  5448.     asl.l    d7,d6
  5449.     or.l    d6,d1
  5450.     lea    -$6410(a5),a0
  5451.     fmove.s    0(a0,d0.l*4),fp0
  5452.     fmul.s    #$.437F0000,fp0
  5453.     fmove.l    fp0,d6
  5454.     moveq    #$18,d7
  5455.     asl.l    d7,d6
  5456.     or.l    d6,d1
  5457.     move.w    d1,0(a1,d0.l*2)
  5458.     addq.l    #1,d0
  5459. L1261
  5460.     cmp.l    d2,d0
  5461.     blt.b    L1260
  5462. L1262
  5463.     bra    L1267
  5464. L1263
  5465. ;            else if (format == GL_ABGR_EXT) 
  5466.     cmp.l    #$8000,d3
  5467.     bne    L1267
  5468. L1264
  5469. ;               GLushort *dst = (GLushort *) gl_pixel_
  5470.     clr.l    -(a7)
  5471.     move.l    d4,-(a7)
  5472.     clr.l    -(a7)
  5473.     move.l    d5,-(a7)
  5474.     move.l    d3,-(a7)
  5475.     move.l    $18(a5),-(a7)
  5476.     move.l    d2,-(a7)
  5477.     move.l    a4,-(a7)
  5478.     move.l    a3,a0
  5479.     add.l    #$E644,a0
  5480.     pea    (a0)
  5481.     jsr    _gl_pixel_addr_in_image
  5482.     add.w    #$24,a7
  5483.     move.l    d0,a1
  5484. ;               for (i=0;
  5485.     moveq    #0,d0
  5486.     bra    L1266
  5487. L1265
  5488. ;                  dst[i] = (((GLint) (alpha[i] * 2
  5489.     lea    -$6410(a5),a0
  5490.     fmove.s    0(a0,d0.l*4),fp0
  5491.     fmul.s    #$.437F0000,fp0
  5492.     fmove.l    fp0,d1
  5493.     lea    -$4B10(a5),a0
  5494.     fmove.s    0(a0,d0.l*4),fp0
  5495.     fmul.s    #$.437F0000,fp0
  5496.     fmove.l    fp0,d6
  5497.     moveq    #$8,d7
  5498.     asl.l    d7,d6
  5499.     or.l    d6,d1
  5500.     lea    -$3210(a5),a0
  5501.     fmove.s    0(a0,d0.l*4),fp0
  5502.     fmul.s    #$.437F0000,fp0
  5503.     fmove.l    fp0,d6
  5504.     moveq    #$10,d7
  5505.     asl.l    d7,d6
  5506.     or.l    d6,d1
  5507.     lea    -$1910(a5),a0
  5508.     fmove.s    0(a0,d0.l*4),fp0
  5509.     fmul.s    #$.437F0000,fp0
  5510.     fmove.l    fp0,d6
  5511.     moveq    #$18,d7
  5512.     asl.l    d7,d6
  5513.     or.l    d6,d1
  5514.     move.w    d1,0(a1,d0.l*2)
  5515.     addq.l    #1,d0
  5516. L1266
  5517.     cmp.l    d2,d0
  5518.     blt.b    L1265
  5519. L1267
  5520. ;            
  5521.     bra    L1299
  5522. L1268
  5523. ;            if (format == GL_RGBA) 
  5524.     cmp.l    #$1908,d3
  5525.     bne    L1273
  5526. L1269
  5527. ;               GLuint *dst = (GLuint *) gl_pixel_addr
  5528.     clr.l    -(a7)
  5529.     move.l    d4,-(a7)
  5530.     clr.l    -(a7)
  5531.     move.l    d5,-(a7)
  5532.     move.l    d3,-(a7)
  5533.     move.l    $18(a5),-(a7)
  5534.     move.l    d2,-(a7)
  5535.     move.l    a4,-(a7)
  5536.     move.l    a3,a0
  5537.     add.l    #$E644,a0
  5538.     pea    (a0)
  5539.     jsr    _gl_pixel_addr_in_image
  5540.     add.w    #$24,a7
  5541.     move.l    d0,a1
  5542. ;               for (i=0;
  5543.     moveq    #0,d0
  5544.     bra    L1271
  5545. L1270
  5546. ;                  dst[i] = (((GLint) (red[i]   * 1
  5547.     lea    -$1910(a5),a0
  5548.     fmove.s    0(a0,d0.l*4),fp0
  5549.     fmul.s    #$.447FC000,fp0
  5550.     fmove.l    fp0,d1
  5551.     moveq    #$16,d6
  5552.     asl.l    d6,d1
  5553.     lea    -$3210(a5),a0
  5554.     fmove.s    0(a0,d0.l*4),fp0
  5555.     fmul.s    #$.447FC000,fp0
  5556.     fmove.l    fp0,d6
  5557.     moveq    #$C,d7
  5558.     asl.l    d7,d6
  5559.     or.l    d6,d1
  5560.     lea    -$4B10(a5),a0
  5561.     fmove.s    0(a0,d0.l*4),fp0
  5562.     fmul.s    #$.447FC000,fp0
  5563.     fmove.l    fp0,d6
  5564.     moveq    #2,d7
  5565.     asl.l    d7,d6
  5566.     or.l    d6,d1
  5567.     lea    -$6410(a5),a0
  5568.     fmove.s    0(a0,d0.l*4),fp0
  5569.     fmul.s    #$.40400000,fp0
  5570.     fmove.l    fp0,d6
  5571.     or.l    d6,d1
  5572.     move.l    d1,0(a1,d0.l*4)
  5573.     addq.l    #1,d0
  5574. L1271
  5575.     cmp.l    d2,d0
  5576.     blt.b    L1270
  5577. L1272
  5578.     bra    L1282
  5579. L1273
  5580. ;            else if (format == GL_BGRA) 
  5581.     cmp.l    #$80E1,d3
  5582.     bne    L1278
  5583. L1274
  5584. ;               GLushort *dst = (GLushort *) gl_pixel_
  5585.     clr.l    -(a7)
  5586.     move.l    d4,-(a7)
  5587.     clr.l    -(a7)
  5588.     move.l    d5,-(a7)
  5589.     move.l    d3,-(a7)
  5590.     move.l    $18(a5),-(a7)
  5591.     move.l    d2,-(a7)
  5592.     move.l    a4,-(a7)
  5593.     move.l    a3,a0
  5594.     add.l    #$E644,a0
  5595.     pea    (a0)
  5596.     jsr    _gl_pixel_addr_in_image
  5597.     add.w    #$24,a7
  5598.     move.l    d0,a1
  5599. ;               for (i=0;
  5600.     moveq    #0,d0
  5601.     bra    L1276
  5602. L1275
  5603. ;                  dst[i] = (((GLint) (blue[i]  * 1
  5604.     lea    -$4B10(a5),a0
  5605.     fmove.s    0(a0,d0.l*4),fp0
  5606.     fmul.s    #$.447FC000,fp0
  5607.     fmove.l    fp0,d1
  5608.     moveq    #$16,d6
  5609.     asl.l    d6,d1
  5610.     lea    -$3210(a5),a0
  5611.     fmove.s    0(a0,d0.l*4),fp0
  5612.     fmul.s    #$.447FC000,fp0
  5613.     fmove.l    fp0,d6
  5614.     moveq    #$C,d7
  5615.     asl.l    d7,d6
  5616.     or.l    d6,d1
  5617.     lea    -$1910(a5),a0
  5618.     fmove.s    0(a0,d0.l*4),fp0
  5619.     fmul.s    #$.447FC000,fp0
  5620.     fmove.l    fp0,d6
  5621.     moveq    #2,d7
  5622.     asl.l    d7,d6
  5623.     or.l    d6,d1
  5624.     lea    -$6410(a5),a0
  5625.     fmove.s    0(a0,d0.l*4),fp0
  5626.     fmul.s    #$.40400000,fp0
  5627.     fmove.l    fp0,d6
  5628.     or.l    d6,d1
  5629.     move.w    d1,0(a1,d0.l*2)
  5630.     addq.l    #1,d0
  5631. L1276
  5632.     cmp.l    d2,d0
  5633.     blt.b    L1275
  5634. L1277
  5635.     bra    L1282
  5636. L1278
  5637. ;            else if (format == GL_ABGR_EXT) 
  5638.     cmp.l    #$8000,d3
  5639.     bne    L1282
  5640. L1279
  5641. ;               GLushort *dst = (GLushort *) gl_pixel_
  5642.     clr.l    -(a7)
  5643.     move.l    d4,-(a7)
  5644.     clr.l    -(a7)
  5645.     move.l    d5,-(a7)
  5646.     move.l    d3,-(a7)
  5647.     move.l    $18(a5),-(a7)
  5648.     move.l    d2,-(a7)
  5649.     move.l    a4,-(a7)
  5650.     move.l    a3,a0
  5651.     add.l    #$E644,a0
  5652.     pea    (a0)
  5653.     jsr    _gl_pixel_addr_in_image
  5654.     add.w    #$24,a7
  5655.     move.l    d0,a1
  5656. ;               for (i=0;
  5657.     moveq    #0,d0
  5658.     bra    L1281
  5659. L1280
  5660. ;                  dst[i] = (((GLint) (alpha[i] * 1
  5661.     lea    -$6410(a5),a0
  5662.     fmove.s    0(a0,d0.l*4),fp0
  5663.     fmul.s    #$.447FC000,fp0
  5664.     fmove.l    fp0,d1
  5665.     moveq    #$16,d6
  5666.     asl.l    d6,d1
  5667.     lea    -$4B10(a5),a0
  5668.     fmove.s    0(a0,d0.l*4),fp0
  5669.     fmul.s    #$.447FC000,fp0
  5670.     fmove.l    fp0,d6
  5671.     moveq    #$C,d7
  5672.     asl.l    d7,d6
  5673.     or.l    d6,d1
  5674.     lea    -$3210(a5),a0
  5675.     fmove.s    0(a0,d0.l*4),fp0
  5676.     fmul.s    #$.447FC000,fp0
  5677.     fmove.l    fp0,d6
  5678.     moveq    #2,d7
  5679.     asl.l    d7,d6
  5680.     or.l    d6,d1
  5681.     lea    -$1910(a5),a0
  5682.     fmove.s    0(a0,d0.l*4),fp0
  5683.     fmul.s    #$.40400000,fp0
  5684.     fmove.l    fp0,d6
  5685.     or.l    d6,d1
  5686.     move.w    d1,0(a1,d0.l*2)
  5687.     addq.l    #1,d0
  5688. L1281
  5689.     cmp.l    d2,d0
  5690.     blt.b    L1280
  5691. L1282
  5692. ;            
  5693.     bra    L1299
  5694. L1283
  5695. ;            if (format == GL_RGBA) 
  5696.     cmp.l    #$1908,d3
  5697.     bne    L1288
  5698. L1284
  5699. ;               GLuint *dst = (GLuint *) gl_pixel_addr
  5700.     clr.l    -(a7)
  5701.     move.l    d4,-(a7)
  5702.     clr.l    -(a7)
  5703.     move.l    d5,-(a7)
  5704.     move.l    d3,-(a7)
  5705.     move.l    $18(a5),-(a7)
  5706.     move.l    d2,-(a7)
  5707.     move.l    a4,-(a7)
  5708.     move.l    a3,a0
  5709.     add.l    #$E644,a0
  5710.     pea    (a0)
  5711.     jsr    _gl_pixel_addr_in_image
  5712.     add.w    #$24,a7
  5713.     move.l    d0,a1
  5714. ;               for (i=0;
  5715.     moveq    #0,d0
  5716.     bra    L1286
  5717. L1285
  5718. ;                  dst[i] = (((GLint) (red[i]   * 1
  5719.     lea    -$1910(a5),a0
  5720.     fmove.s    0(a0,d0.l*4),fp0
  5721.     fmul.s    #$.447FC000,fp0
  5722.     fmove.l    fp0,d1
  5723.     lea    -$3210(a5),a0
  5724.     fmove.s    0(a0,d0.l*4),fp0
  5725.     fmul.s    #$.447FC000,fp0
  5726.     fmove.l    fp0,d6
  5727.     moveq    #$A,d7
  5728.     asl.l    d7,d6
  5729.     or.l    d6,d1
  5730.     lea    -$4B10(a5),a0
  5731.     fmove.s    0(a0,d0.l*4),fp0
  5732.     fmul.s    #$.447FC000,fp0
  5733.     fmove.l    fp0,d6
  5734.     moveq    #$14,d7
  5735.     asl.l    d7,d6
  5736.     or.l    d6,d1
  5737.     lea    -$6410(a5),a0
  5738.     fmove.s    0(a0,d0.l*4),fp0
  5739.     fmul.s    #$.40400000,fp0
  5740.     fmove.l    fp0,d6
  5741.     moveq    #$1E,d7
  5742.     asl.l    d7,d6
  5743.     or.l    d6,d1
  5744.     move.l    d1,0(a1,d0.l*4)
  5745.     addq.l    #1,d0
  5746. L1286
  5747.     cmp.l    d2,d0
  5748.     blt.b    L1285
  5749. L1287
  5750.     bra    L1297
  5751. L1288
  5752. ;            else if (format == GL_BGRA) 
  5753.     cmp.l    #$80E1,d3
  5754.     bne    L1293
  5755. L1289
  5756. ;               GLushort *dst = (GLushort *) gl_pixel_
  5757.     clr.l    -(a7)
  5758.     move.l    d4,-(a7)
  5759.     clr.l    -(a7)
  5760.     move.l    d5,-(a7)
  5761.     move.l    d3,-(a7)
  5762.     move.l    $18(a5),-(a7)
  5763.     move.l    d2,-(a7)
  5764.     move.l    a4,-(a7)
  5765.     move.l    a3,a0
  5766.     add.l    #$E644,a0
  5767.     pea    (a0)
  5768.     jsr    _gl_pixel_addr_in_image
  5769.     add.w    #$24,a7
  5770.     move.l    d0,a1
  5771. ;               for (i=0;
  5772.     moveq    #0,d0
  5773.     bra    L1291
  5774. L1290
  5775. ;                  dst[i] = (((GLint) (blue[i]  * 1
  5776.     lea    -$4B10(a5),a0
  5777.     fmove.s    0(a0,d0.l*4),fp0
  5778.     fmul.s    #$.447FC000,fp0
  5779.     fmove.l    fp0,d1
  5780.     lea    -$3210(a5),a0
  5781.     fmove.s    0(a0,d0.l*4),fp0
  5782.     fmul.s    #$.447FC000,fp0
  5783.     fmove.l    fp0,d6
  5784.     moveq    #$A,d7
  5785.     asl.l    d7,d6
  5786.     or.l    d6,d1
  5787.     lea    -$1910(a5),a0
  5788.     fmove.s    0(a0,d0.l*4),fp0
  5789.     fmul.s    #$.447FC000,fp0
  5790.     fmove.l    fp0,d6
  5791.     moveq    #$14,d7
  5792.     asl.l    d7,d6
  5793.     or.l    d6,d1
  5794.     lea    -$6410(a5),a0
  5795.     fmove.s    0(a0,d0.l*4),fp0
  5796.     fmul.s    #$.40400000,fp0
  5797.     fmove.l    fp0,d6
  5798.     moveq    #$1E,d7
  5799.     asl.l    d7,d6
  5800.     or.l    d6,d1
  5801.     move.w    d1,0(a1,d0.l*2)
  5802.     addq.l    #1,d0
  5803. L1291
  5804.     cmp.l    d2,d0
  5805.     blt.b    L1290
  5806. L1292
  5807.     bra    L1297
  5808. L1293
  5809. ;            else if (format == GL_ABGR_EXT) 
  5810.     cmp.l    #$8000,d3
  5811.     bne    L1297
  5812. L1294
  5813. ;               GLushort *dst = (GLushort *) gl_pixel_
  5814.     clr.l    -(a7)
  5815.     move.l    d4,-(a7)
  5816.     clr.l    -(a7)
  5817.     move.l    d5,-(a7)
  5818.     move.l    d3,-(a7)
  5819.     move.l    $18(a5),-(a7)
  5820.     move.l    d2,-(a7)
  5821.     move.l    a4,-(a7)
  5822.     move.l    a3,a0
  5823.     add.l    #$E644,a0
  5824.     pea    (a0)
  5825.     jsr    _gl_pixel_addr_in_image
  5826.     add.w    #$24,a7
  5827.     move.l    d0,a1
  5828. ;               for (i=0;
  5829.     moveq    #0,d0
  5830.     bra    L1296
  5831. L1295
  5832. ;                  dst[i] = (((GLint) (alpha[i] * 1
  5833.     lea    -$6410(a5),a0
  5834.     fmove.s    0(a0,d0.l*4),fp0
  5835.     fmul.s    #$.447FC000,fp0
  5836.     fmove.l    fp0,d1
  5837.     lea    -$4B10(a5),a0
  5838.     fmove.s    0(a0,d0.l*4),fp0
  5839.     fmul.s    #$.447FC000,fp0
  5840.     fmove.l    fp0,d6
  5841.     moveq    #$A,d7
  5842.     asl.l    d7,d6
  5843.     or.l    d6,d1
  5844.     lea    -$3210(a5),a0
  5845.     fmove.s    0(a0,d0.l*4),fp0
  5846.     fmul.s    #$.447FC000,fp0
  5847.     fmove.l    fp0,d6
  5848.     moveq    #$14,d7
  5849.     asl.l    d7,d6
  5850.     or.l    d6,d1
  5851.     lea    -$1910(a5),a0
  5852.     fmove.s    0(a0,d0.l*4),fp0
  5853.     fmul.s    #$.40400000,fp0
  5854.     fmove.l    fp0,d6
  5855.     moveq    #$1E,d7
  5856.     asl.l    d7,d6
  5857.     or.l    d6,d1
  5858.     move.w    d1,0(a1,d0.l*2)
  5859.     addq.l    #1,d0
  5860. L1296
  5861.     cmp.l    d2,d0
  5862.     blt.b    L1295
  5863. L1297
  5864. ;            
  5865.     bra.b    L1299
  5866. L1298
  5867. ;            gl_error( ctx, GL_INVALID_ENUM, "glReadPixel
  5868.     move.l    #L829,-(a7)
  5869.     pea    $500.w
  5870.     move.l    a3,-(a7)
  5871.     jsr    _gl_error
  5872.     add.w    #$C,a7
  5873. L1299
  5874.     addq.l    #1,d4
  5875.     addq.l    #1,$10(a5)
  5876. L1300
  5877.     cmp.l    $18(a5),d4
  5878.     blt    L836
  5879. L1301
  5880.     fmovem.x (a7)+,fp2/fp3/fp4/fp5
  5881.     movem.l    (a7)+,d2-d7/a2-a4
  5882.     unlk    a5
  5883.     rts
  5884.  
  5885. L830
  5886.     dc.b    'bad format in glReadPixels',$A,0
  5887. L828
  5888.     dc.b    'glReadPixels(format)',0
  5889. L829
  5890.     dc.b    'glReadPixels(type)',0
  5891.  
  5892.     SECTION "_gl_ReadPixels:0",CODE
  5893.  
  5894.  
  5895. ;void gl_ReadPixels( GLcontext *ctx,
  5896.     XDEF    _gl_ReadPixels
  5897. _gl_ReadPixels
  5898.     movem.l    d2-d7/a2/a3,-(a7)
  5899.     movem.l    $28(a7),d2-d5/d7
  5900.     movem.l    $3C(a7),d6/a3
  5901.     move.l    $24(a7),a2
  5902. L1334
  5903. ;   if (INSIDE_BEGIN_END(ctx)) 
  5904.     move.l    a2,a0
  5905.     add.l    #$E968,a0
  5906.     move.l    (a0),d0
  5907.     cmp.l    #$1A00,d0
  5908.     beq.b    L1336
  5909. L1335
  5910. ;      gl_error( ctx, GL_INVALID_OPERATION, "glReadPixels" );
  5911.     move.l    #L1331,-(a7)
  5912.     pea    $502.w
  5913.     move.l    a2,-(a7)
  5914.     jsr    _gl_error
  5915.     add.w    #$C,a7
  5916.     movem.l    (a7)+,d2-d7/a2/a3
  5917.     rts
  5918. L1336
  5919. ;   if (!pixels) 
  5920.     cmp.w    #0,a3
  5921.     bne.b    L1338
  5922. L1337
  5923. ;      gl_error( ctx, GL_INVALID_VALUE, "glReadPixels(pixels)" )
  5924.     move.l    #L1332,-(a7)
  5925.     pea    $501.w
  5926.     move.l    a2,-(a7)
  5927.     jsr    _gl_error
  5928.     add.w    #$C,a7
  5929.     movem.l    (a7)+,d2-d7/a2/a3
  5930.     rts
  5931. L1338
  5932. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
  5933.     move.l    a2,a0
  5934.     add.l    #$B168,a0
  5935.     move.l    (a0),-(a7)
  5936.     move.l    a2,-(a7)
  5937.     move.l    $91C(a2),a0
  5938.     jsr    (a0)
  5939.     addq.w    #$8,a7
  5940. ;   switch (format)
  5941.     move.l    d7,d0
  5942.     cmp.l    #$1907,d0
  5943.     beq    L1342
  5944.     bgt.b    L1347
  5945.     sub.l    #$1900,d0
  5946.     cmp.l    #6,d0
  5947.     bhi    L1345
  5948.     move.l    L1348(pc,d0.l*4),a0
  5949.     jmp    (a0)
  5950. L1348
  5951.     dc.l    L1339
  5952.     dc.l    L1340
  5953.     dc.l    L1341
  5954.     dc.l    L1342
  5955.     dc.l    L1342
  5956.     dc.l    L1342
  5957.     dc.l    L1342
  5958. L1347
  5959.     cmp.l    #$8000,d0
  5960.     beq    L1342
  5961.     bgt.b    L1349
  5962.     cmp.l    #$1909,d0
  5963.     beq    L1342
  5964.     bgt.b    L1350
  5965.     blt.b    L1342
  5966. L1350
  5967.     cmp.l    #$190A,d0
  5968.     beq.b    L1342
  5969.     bra    L1345
  5970. L1349
  5971.     cmp.l    #$80E0,d0
  5972.     beq.b    L1342
  5973.     cmp.l    #$80E1,d0
  5974.     beq.b    L1342
  5975.     bra    L1345
  5976. ;      
  5977. L1339
  5978. ;         read_index_pixels( ctx, x, y, width, height, type,
  5979.     move.l    a3,-(a7)
  5980.     move.l    d6,-(a7)
  5981.     move.l    d5,-(a7)
  5982.     move.l    d4,-(a7)
  5983.     move.l    d3,-(a7)
  5984.     move.l    d2,-(a7)
  5985.     move.l    a2,-(a7)
  5986.     jsr    _read_index_pixels
  5987.     add.w    #$1C,a7
  5988. ;     
  5989.     bra    L1346
  5990. L1340
  5991. ;     read_stencil_pixels( ctx, x, y, width, height, type, pixels );
  5992.     move.l    a3,-(a7)
  5993.     move.l    d6,-(a7)
  5994.     move.l    d5,-(a7)
  5995.     move.l    d4,-(a7)
  5996.     move.l    d3,-(a7)
  5997.     move.l    d2,-(a7)
  5998.     move.l    a2,-(a7)
  5999.     jsr    _read_stencil_pixels
  6000.     add.w    #$1C,a7
  6001. ;         
  6002.     bra.b    L1346
  6003. L1341
  6004. ;     read_depth_pixels( ctx, x, y, width, height, type, pixels );
  6005.     move.l    a3,-(a7)
  6006.     move.l    d6,-(a7)
  6007.     move.l    d5,-(a7)
  6008.     move.l    d4,-(a7)
  6009.     move.l    d3,-(a7)
  6010.     move.l    d2,-(a7)
  6011.     move.l    a2,-(a7)
  6012.     jsr    _read_depth_pixels
  6013.     add.w    #$1C,a7
  6014. ;     
  6015.     bra.b    L1346
  6016. L1342
  6017. ;         if (!read_fast_rgba_pixels( ctx, x, y, width, heig
  6018.     move.l    a3,-(a7)
  6019.     move.l    d6,-(a7)
  6020.     move.l    d7,-(a7)
  6021.     move.l    d5,-(a7)
  6022.     move.l    d4,-(a7)
  6023.     move.l    d3,-(a7)
  6024.     move.l    d2,-(a7)
  6025.     move.l    a2,-(a7)
  6026.     jsr    _read_fast_rgba_pixels
  6027.     add.w    #$20,a7
  6028.     tst.b    d0
  6029.     bne.b    L1344
  6030. L1343
  6031. ;            read_rgba_pixels( ctx, x, y, width, height, 
  6032.     move.l    a3,-(a7)
  6033.     move.l    d6,-(a7)
  6034.     move.l    d7,-(a7)
  6035.     move.l    d5,-(a7)
  6036.     move.l    d4,-(a7)
  6037.     move.l    d3,-(a7)
  6038.     move.l    d2,-(a7)
  6039.     move.l    a2,-(a7)
  6040.     jsr    _read_rgba_pixels
  6041.     add.w    #$20,a7
  6042. L1344
  6043. ;     
  6044.     bra.b    L1346
  6045. L1345
  6046. ;     gl_error( ctx, GL_INVALID_ENUM, "glReadPixels(format)" );
  6047.     move.l    #L1333,-(a7)
  6048.     pea    $500.w
  6049.     move.l    a2,-(a7)
  6050.     jsr    _gl_error
  6051.     add.w    #$C,a7
  6052. L1346
  6053. ;   (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
  6054.     move.l    $21E2(a2),-(a7)
  6055.     move.l    a2,-(a7)
  6056.     move.l    $91C(a2),a0
  6057.     jsr    (a0)
  6058.     addq.w    #$8,a7
  6059.     movem.l    (a7)+,d2-d7/a2/a3
  6060.     rts
  6061.  
  6062. L1331
  6063.     dc.b    'glReadPixels',0
  6064. L1333
  6065.     dc.b    'glReadPixels(format)',0
  6066. L1332
  6067.     dc.b    'glReadPixels(pixels)',0
  6068.  
  6069.     END
  6070.